? ? ? 為了不被時(shí)代拋棄衡蚂,最近切換到了AS,默認(rèn)創(chuàng)建的工程中drawable文件夾替換成了mipmap树枫,查了資料后其實(shí)和之前差不多螟加,只是增加了圖片渲染的支持徘溢,一切的改變也是為了效率:
Android在 API level 17 加入了 mipmap 技術(shù),對(duì) bitmap 圖片的渲染支持 mipmap 技術(shù)仰迁,來(lái)提高渲染的速度和質(zhì)量甸昏。
mipmap 是一種很早就有的技術(shù)了,翻譯過(guò)來(lái)就是紋理映射技術(shù)徐许。android 中的 mipmap 技術(shù)主要為了應(yīng)對(duì)圖片大小縮放的處理施蜜,在android 中我們提供一個(gè) bitmap 圖片,由于應(yīng)用的需要(比如縮放動(dòng)畫)雌隅,可能對(duì)這個(gè) bitmap 進(jìn)行各種比例的縮小翻默,為了提高縮小的速度和圖片的質(zhì)量,android 通過(guò) mipmap 技術(shù)提前對(duì)按縮小層級(jí)生成圖片預(yù)先存儲(chǔ)在內(nèi)存中恰起,這樣就提高了圖片渲染的速度和質(zhì)量修械。
api 中通過(guò) Bitmap 的 public final void setHasMipMap (boolean hasMipMap) 方法可以讓系統(tǒng)渲染器嘗試開(kāi)啟 Bitmap 的 mipmap 技術(shù)。但是這個(gè)方法只能建議系統(tǒng)開(kāi)啟這個(gè)功能检盼,至于是否正真開(kāi)啟肯污,還是由系統(tǒng)決定。
res 目錄下面 mipmap 和 drawable 的區(qū)別也就是上面這個(gè)設(shè)置是否開(kāi)啟的區(qū)別。mipmap 目錄下的圖片默認(rèn) setHasMipMap 為 true蹦渣,drawable 默認(rèn) setHasMipMap 為 false哄芜。
下面是引用自 google 官方的描述
Mipmapping for drawables
Using a mipmap as the source for your bitmap or drawable is a simple way to provide a quality image and various image scales, which can be particularly useful if you expect your image to be scaled during an animation.
Android 4.2 (API level 17) added support for mipmaps in the Bitmap class—Android swaps the mip images in your Bitmap when you’ve supplied a mipmap source and have enabled setHasMipMap(). Now in Android 4.3, you can enable mipmaps for a BitmapDrawable object as well, by providing a mipmap asset and setting the android:mipMap attribute in a bitmap resource file or by calling hasMipMap().