mc-第3章 Android图形图像处理.ppt
文本预览下载声明
第3章 Android中图形图像的处理 图形图像的应用在一个系统中占有比较大的分量,如一些程序的图标、界面的美化等,都离不开图形图像。 Android中对图形图像的处理非常强大,对于2D图像它并没有沿用Java中的图形处理类,而是使用了自定义的处理类。 本章将讲解Bitmap位图的使用、动画的创建和Canvas、Paint的基本绘图。 3.1 Android中图形图像资源的获取 在之前的应用程序中,我们使用的几乎都是存储在drawable文件夹中的图片资源。 本节我们将介绍一种新的提供图片的路径,从assets文件夹中获取图片资源。 例如我们如果想要将SD卡中的图片作为手机墙纸,就需要使用Bitmap和BitmapFactory类。 3.1.1 Bitmap和BitmapFactory类 Bitmap代表一张位图,BitmapDrawable里封装的图片就是一个Bitmap对象。如果需要获取BitmapDrawable所包装的Bitmap对象,需要调用BitmapDrawable.getBitmap()方法。语法如下所示: Bitmap bitmap = bDrawable.getBitmap(); 3.1.1 Bitmap和BitmapFactory类 方法名称 方法说明 public static Bitmap createBitmap(Bitmap src) 返回一个Bitmap位图 public final boolean isRecycled() 判断该Bitmap对象是否被回收 public void recycle() 强制回收该Bitmap对象 方法名称 方法说明 public static Bitmap decodeByteArray(byte[] data, int offset, int length) 从指定字节数组的offset位置开始,解析长度为length的字节数据为Bitmap对象 public static Bitmap decodeFile(String pathName) 从pathName指定的文件中解析创建Bitmap对象 public static Bitmap decodeResource(Resources res, int id) 根据ID指定的资源解析创建Bitmap对象 public static Bitmap decodeStream(InputStream is) 根从指定的输入流中解析创建Bitmap对象 3.1.2 获取assets文件夹图片资源 assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。 方法名称 方法说明 public void close() 关闭AssetManager public final InputStream open(String fileName) 打开指定资源对应的输入流 public final String[] list(String path) 返回指定路径下的所有文件 3.1.2 获取assets文件夹图片资源 访问assets文件夹中的文件,分为以下几个步骤: (1)在Activity里面调用getAssets()方法,获取AssetManager引用。 (2)调用AssetManager.open(String fileName)方法,指定读取的文件,得到输入流InputStream。 (3)用已经open()方法建立的inputStream读取文件,读取完成后调用inputStream.close()关闭输入流。 (4)调用AssetManager.close()关闭AssetManager。 注意:来自assets中的文件只可以读取,不能进行写的操作。 实例参见10-1 3.2 Android中的动画生成 Android系统提供了两种创建动画方式:补间动画(Tween Animation)和帧动画(Frame Animation)。 补间动画(Tween Animation)主要实现对图片进行移动、放大、缩小以及透明度变化的功能,而帧动画(Frame Animation)则比较简单,就是将一张张的图片连续播放以产生动画效果。 下面分别介绍两种动画技术的开发及应用。 3.2.1 补间动画 补间动画(Tween Animation)就是对场景里的对象不断的进行图像变化来产生动画效果,可以对对象进行旋转、平移、放缩和渐变等操作。 标记名称 属性值 说明 set shareInterpolator:是否在子元素中共享插入器 可以包含其他动画变换的容器,同时也可以包含set标记 alpha fromAlpha:变换的起始透明度 toAlp
显示全部