Android开发中Bitmap和Drawable的区别

来源:互联网 发布:直通车软件哪个好 编辑:程序博客网 时间:2024/06/03 22:46

- Drawable和Bitmap之间可以互相转换,Drawable占用内存远小于Bitmap。

- setImageDrawable使用资源文件;setImageBitmap使用bitmap图片,该图片可能是读取本地相册,或者从资源文件转换而来。

- setImageResource()和setImageBitmap()

//setImageResource()public void setImageResource (int resId)//占用UI thread;// setImageBitmap()ImageView iv;String fileName = "/data/data/com.test/aa.png";Bitmap bm = BitmapFactory.decodeFile(fileName); iv.setImageBitmap(bm); //占用内存// setImageBitmap()Bitmap image = BitmapFactory.decodeFile(imgFile.getAbsolutePath());imageView.setImageBitmap(image);// Bitmap转换成DrawableBitmap image = BitmapFactory.decodeFile(imgFile.getAbsolutePath());BitmapDrawable bitmapDrawable = new BitmapDrawable(image);imageView.setImageDrawable(bitmapDrawable);// 结论:Bitmap是Drawable . Drawable不一定是Bitmap

小结

Bitmap: 简单化的Drawable, PNG 或JPEG图像.
Drawable在内存占用和绘制速度这两个非常关键的点上胜过Bitmap

对比项 占用内存 支持缩放 支持旋转 绘制速度 Bitmap 大 是 是 慢 Drawable 小 是 是 快

参考自:

Drawable和Bitmap区别
Drawable和Bitmap的区别

0 1