mipmap 和 drawable 的区别

      为了不被时代抛弃,最近切换到了AS,默认创建的工程中drawable文件夹替换成了mipmap,查了资料后其实和之前差不多,只是增加了图片渲染的支持,一切的改变也是为了效率:

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。

下面是引用自 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().

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • mipmap 翻译过来就是纹理映射技术,mipmap文件夹下的图标会通过Mipmap纹理技术进行优化。androi...
    专属守护阅读 2,429评论 0 2
  • mipmap 翻译过来就是纹理映射技术,mipmap文件夹下的图标会通过Mipmap纹理技术进行优化。androi...
    GB_speak阅读 15,228评论 1 21
  • Android在 API level 17 加入了 mipmap 技术,对 bitmap 图片的渲染支持 mipm...
    sys1211阅读 1,036评论 0 1
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,751评论 25 709
  • 天祝的暖气来了,庄浪河边的树叶也悄悄的变了颜色,由绿变成黄色,看着很是悲凉。秋天每年都会如期而至,带着寒意,带着悲...
    小资w阅读 350评论 0 2