文档详情

第6章简单图形图像解说.ppt

发布:2017-03-21约3.6千字共14页下载文档
文本预览下载声明
简单图形图像 知识导图 简单图形图像示例 简单图形图像 简单图形图像 简单图形图像 简单图形图像 简单图形图像 简单图形图像 自定义绘图 * * * 倚动软件工厂实验室 QQ群:287966120 Q Q号: 1281147324 逐帧动画 简单图片 作为一款注重用户体验的应用程序,当然离不开图形、图像的支持。在Android中对图形、图像提供了多种支持,一般使用Bitmap和BitmapFactory方法来封装和管理位图,通过Animation和AnimationDrawable类来保存和控制逐帧动画,使用Canvas和Path两个类绘制各种各样的图形,其中,Canvas可以绘制一些常见的规则图形,而Path则用于绘制一些不规则、自定义的图形。 静态图片即图片内容不发生变化的图片,通常用于显示、增添界面美观,例如图标、背景等。对于这种类型的图片通常由一些图片控件进行处理,如ImageView等。 动态图片即内容、大小、位置等会随着时间而变化的图片,一般采用不断重新绘制的方式来处理,每隔多少毫秒绘制一次,给人的感觉就是连续变化的。 图片不仅可以使用ImageView等图片控件显示,也可以作为Button、TextView等控件的背景。从广义的角度来看,Android应用中图片不仅包括*.png(首选)、*.jpg、*.gif(不建议)等格式的位图,也包括使用XML资源文件定义的各种Drawable对象。 逐帧动画是一种常见的动画形式,其原理是利用人的视觉的滞后性,在时间轴的每帧上绘制不同的内容,然后在足够短的时间内进行播放,给人的感觉就如同连续的动画。 由于逐帧动画的帧序列内容不一样,这不但给制作增加了负担而且最终输出的文件量也很大,但它的优势也很明显:逐帧动画适合于表演细腻的动作。例如:人物走路、说话,动物奔跑等 在Android中操作图片是通过Drawable类来完成的,Drawable类有很多子类,如BitmapDrawable类用于操作位图,AnimationDrawable类用于操作逐帧动画,ShapeDrawable类用于操作形状。 Android不允许图片资源的文件名中出现大写字母,且不能以数字开头。 需要指出的是,R.drawable.Xxx只是一个int类型的常量,代表该Drawable对象的ID,如果在Java程序中需要获得实际的Drawable对象,则可以调用getResources () 方法再调用Resources的getDrawable(int ID)方法来获取。 Drawable对象 (2)Bitmap和BitmapFactory Bitmap用于表示一张位图,BitmapDrawable用于封装一个Bitmap对象。 如果想将Bitmap对象包装成BitmapDrawable对象,可以调用BitmapDrawable的构造方法。 BitmapDrawable bd=new BitmapDrawable(Bitmap bitmap); 如果需要获取BitmapDrawable包装的Bitmap对象,可以调用BitmapDrawable的getBitmap()方法。 Bitmap bitmap=bd.getBitmap(); Bitmap提供了一些常用方法 强制一个Bitmap对象立即回收自己 recycle() 返回该Bitmap对象是否已被回收 isRecycle() 获取位图的宽度 getWidth() 获取位图的高度 getHeight() 创建一个宽为width,长为height的新位图 createBitmap (int width, int height, Bitmap.Config config) 从原位图source的指定坐标点 (x,y) 开始,截取宽为width,长为height的部分,创建一个新的Bitmap对象 createBitmap (Bitmap source, int x, int y, int width, int height) 描述 方法 BitmapFactory是一个工具类,该类所有的方法都是静态方法,这些方法可以从不同的数据源来解析、创建Bitmap对象,如资源ID、路径、文件和数据流等方式。 从指定的输入流解析,创建一个Bitmap对象 decodeStream (InputStream is) 从指定的资源ID中解析创建Bitmap对象 decodeResource (Resources res, int ID) 从pathName指定的文件中解析,创建一个Bitmap对象 decodeFile (String pathName) 从指定的data字节数组的
显示全部
相似文档