1.图片转换为Bitmap对象
Android中很多时候需要对图片进行处理,首先把图片读入到Bimap中,然后调用API进行处理。BitmapFactory类负责把图片读入到Bitmap中,有如下方法:
public static Bitmap decodeStream(InputStream is);从输入流中读取图片资源转换成Bimap
public static Bitmap decoBytArray(byte [] bata,int offset,int length);从字节数组中读取图片数据转换为Bitmap;
public static Bitmap decodeResource(Resource res,int id);从Android的drawable(res/drawable)目录中读取图片资源转换为Bitmap
public static Bitmap decodeFile(String pathName);从图片文件中读取资源
除此之外,Bitmap还可以调用自己的方法public static Bitmap createBitmap(int width ,int height,Config config)创建一个空白位图,Config为存储格式,有ARGB_4444,ARGB_8888,ALPHA_8等,例如:
Bitmap bmp = Bitmap.createBitmap(400,400,Config.ARGB_8888);
注意:res/drawable下的图片转换为Bitmap后不可修改,如果想要一个可以修改的Bitmap,可以通过Bitmap的copy方法来完成,方法如下
public static Bitmap copy(Config config,boolean isMutable),isMutable设置为true则可以改变
2.Bitmap回收
public final boolean isRecycled();判断是否已回收;
public void recycle();回收Bitmap内存
常见的Bitmap回收代码(bmp为Bitmap对象)
3.BitmapDrawable
BitmapDrawable 是Bitmap的另一种形式,它占用资源更少,性能更高。
BitmapDrawable的构造方法public BitmapDrawable(Resources res, Bitmap bitmap),把Bitmap转换为BitmapDrawable, 而getBitmap()方法是把 BitmapDrawable 转换成Bitmap。
Bitmap和BitmapDrawable都可以获取位图的宽和高: