android 在 API level 17 加入了 mipmap 技術,對 bitmap 圖片的渲染支持 mipmap 技術,來提升渲染的速度和質量。
mipmap 是一種很早就有的技術了,翻譯過來就是紋理映射技術。android 中的 mipmap 技術主要爲了應對圖片大小縮放的處理,在android 中咱們提供一個 bitmap 圖片,因爲應用的須要(好比縮放動畫),可能對這個 bitmap 進行各類比例的縮小,爲了提升縮小的速度和圖片的質量,android 經過 mipmap 技術提早對按縮小層級生成圖片預先存儲在內存中,這樣就提升了圖片渲染的速度和質量。android
api 中經過 Bitmap 的 public final void setHasMipMap (boolean hasMipMap) 方法可讓系統渲染器嘗試開啓 Bitmap 的 mipmap 技術。可是這個方法只能建議系統開啓這個功能,至因而否正真開啓,仍是由系統決定。
res 目錄下面 mipmap 和 drawable 的區別也就是上面這個設置是否開啓的區別。mipmap 目錄下的圖片默認 setHasMipMap 爲 true,drawable 默認 setHasMipMap 爲 false。
google 建議你們只把 app 的啓動圖標放在 mipmap 目錄中,其餘圖片資源仍然放在 drawable 下面。api
將icon放置在mipmap文件夾還可讓咱們程序的launcher圖標自動擁有跨設備密度展現的能力app
好比說一臺屏幕密度是xxhdpi的設備能夠自動加載mipmap-xxxhdpi下的icon來做爲應用程序的launcher圖標,這樣圖標看上去就會更加細膩。性能
鑑於mipmap這個特性,回答上面提出的問題,咱們將全部的資源圖片放在mipmap下面,Android系統將不得不耗費時間去尋找合適的圖片,相反,放在drawable相應文件夾下,Android系統很容易根據密度找到對應的資源文件。動畫
把splash啓動圖片 和一些本身項目裏要執行縮放動畫的圖片放進去便可 其他的還放在drawable下面。
放在mipmap下 系統也就是自動設置的setHasMipmap爲true了 會提早進行一個壓縮 提升渲染的速度 其他的放裏面就有點耗性能了。google