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