Android 官方解釋[3]:
Note: You should place all launcher icons in the res/mipmap-[density]/ folders, rather than drawable/ folders to ensure launcher apps use the best resolution icon.
注意:你應當將雖有啓動圖標放到res/mipmap-[density]/文件夾中,而不是drawable/文件夾,來確保啓動圖片使用最好的分辨率圖標。
Android 在 API level 17 加入了 mipmap 技術,對 bitmap 圖片的渲染支持 mipmap 技術,來提高渲染的速度和質量。
mipmap 是一種很早就有的技術了,翻譯過來就是紋理映射技術。android 中的 mipmap 技術主要爲了應對圖片大小縮放的處理,在android 中我們提供一個 bitmap 圖片,由於應用的需要(比如縮放動畫),可能對這個 bitmap 進行各種比例的縮小,爲了提高縮小的速度和圖片的質量,android 通過 mipmap 技術提前對按縮小層級生成圖片預先存儲在內存中,這樣就提高了圖片渲染的速度和質量。(拓展:圖標的大小)
api 中通過 Bitmap 的 public final void setHasMipMap (boolean hasMipMap) 方法可以讓系統渲染器嘗試開啓 Bitmap 的 mipmap 技術。但是這個方法只能建議系統開啓這個功能,至於是否正真開啓,還是由系統決定。
res 目錄下面 mipmap 和 drawable 的區別也就是上面這個設置是否開啓的區別。mipmap 目錄下的圖片默認 setHasMipMap 爲 true,drawable 默認 setHasMipMap 爲 false。
總結:mipmap僅僅用於應用啓動圖標,可以根據不同分辨率進行優化。其他的圖標資源,還是要放到drawable文件夾中,按理說是在每一個不同的Drawable文件夾下放一套圖,但是這樣會增加APP的體積,所以我們選擇在高分辨率下放一套,一般是drawable-xxhdpi 1080 * 1920文件夾.
by .k
關注"編程v",每一天漲一點
STAY HUNGRY & STAY FOOLISH