Android Bitmap和Drawable的對比
Android Bitmap和Drawable的對比
Bitmap - 稱作位圖,一般位圖的文件格式后綴為bmp,當然編碼器也有很多如RGB565、RGB888。作為一種逐像素的顯示對象執(zhí)行效率高,但是缺點也很明顯存儲效率低。我們理解為一種存儲對象比較好。
Drawable - 作為Android平下通用的圖形對象,它可以裝載常用格式的圖像,比如GIF、PNG、JPG,當然也支持BMP,當然還提供一些高級的可視化對象,比如漸變、圖形等。
A bitmap is a Drawable. A Drawable is not necessarily a bitmap. Like all thumbs are fingers but not all fingers are thumbs.
Bitmap是Drawable . Drawable不一定是Bitmap .就像拇指是指頭,但不是所有的指頭都是拇指一樣.
The API dictates: API規(guī)定:
Though usually not visible to the application, Drawables may take a variety of forms: 盡管通常情況下對于應用是不可見的,Drawables 可以采取很多形式: Bitmap: the simplest Drawable, a PNG or JPEG image. Bitmap: 簡單化的Drawable, PNG 或JPEG圖像. Nine Patch: an extension to the PNG format allows it to specify information about how to stretch it and place things inside of it. Shape: contains simple drawing commands instead of a raw bitmap, allowing it to resize better in some cases. Layers: a compound drawable, which draws multiple underlying drawables on top of each other. States: a compound drawable that selects one of a set of drawables based on its state. Levels: a compound drawable that selects one of a set of drawables based on its level. Scale: a compound drawable with a single child drawable, whose overall size is modified based on the current level.
| 對比項 | 顯示清晰度 | 支持透明色 | 支持色相色差調(diào)整 | 支持像素操作 |
|---|---|---|---|---|
| Bitmap | 相同 | 是 | 是 | 是 |
| Drawable | 相同 | 是 | 否 | 否 |
Drawable在內(nèi)存占用和繪制速度這兩個非常關(guān)鍵的點上勝過Bitmap
- Drawable和Bitmap之間可以互相轉(zhuǎn)換,Drawable占用內(nèi)存遠小于Bitmap。
- setImageDrawable使用資源文件;setImageBitmap使用bitmap圖片,該圖片可能是讀取本地相冊,或者從資源文件轉(zhuǎn)換而來。
- 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); //占用內(nèi)存 // setImageBitmap() Bitmap image = BitmapFactory.decodeFile(imgFile.getAbsolutePath()); imageView.setImageBitmap(image); // Bitmap轉(zhuǎn)換成Drawable Bitmap image = BitmapFactory.decodeFile(imgFile.getAbsolutePath()); BitmapDrawable bitmapDrawable = new BitmapDrawable(image); imageView.setImageDrawable(bitmapDrawable); // 結(jié)論:Bitmap是Drawable . Drawable不一定是Bitmap
小結(jié)
Bitmap: 簡單化的Drawable, PNG 或JPEG圖像.
Drawable在內(nèi)存占用和繪制速度這兩個非常關(guān)鍵的點上勝過Bitmap
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- Android中一種巧妙的drawable.xml替代方案分享
- Android RippleDrawable 水波紋/漣漪效果的實現(xiàn)
- Android自定義Drawable之在Drawable中部指定透明區(qū)域方法示例
- 淺談Android中Drawable使用知識總結(jié)
- Android開發(fā)基于Drawable實現(xiàn)圓角矩形的方法
- Android自定義Drawable實現(xiàn)圓角效果
- Android Drawable和Bitmap的轉(zhuǎn)換實例詳解
- Android DrawableTextView圖片文字居中顯示實例
- Android Drawable必備知識小結(jié)
- Android drawable微技巧,你不知道的drawable細節(jié)
相關(guān)文章
一文帶你深入理解Android Window系統(tǒng)
Android中的窗口系統(tǒng)是應用程序用戶界面的核心組件之一,它負責管理可視化區(qū)域、處理用戶輸入事件以及與系統(tǒng)UI交互,本文將深入介紹與Android窗口系統(tǒng)相關(guān)的重要概念,需要的朋友可以參考下2023-10-10
android RecyclerView的一些優(yōu)化點介紹
大家好,本篇文章主要講的是android RecyclerView的一些優(yōu)化點介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12
如何修改Android Studio創(chuàng)建module時默認的compileSdkVersion
這篇文章主要給大家介紹了如何修改Android Studio創(chuàng)建module時默認的compileSdkVersion的相關(guān)資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧。2017-05-05

