Android開發中Bitmap和Drawable的區別

- 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轉換成Drawable
Bitmap 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的區別

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章