drawable和mipmap区别和作用

drawable不同目录你会怎么选择(Android)CSDN博客 https://blog.csdn.net/iteye_14656/article/details/82605454

可以接触Android的会有一个疑问,为什么res下面会有这么多目录,并且都是用来放图片文件的,那我应该选择放在哪个目录呢?会无所谓的随便找个目录放一下,反正都能找到图片资源。其实并不这样的,google也不是吃饱了没事干搞几个不同的目录一样的,当然是有他的区别。

首先我们来看一个效果图

[img]http://dl2.iteye.com/upload/attachment/0101/5261/5ea9d9f2-8293-3b1d-99a9-9c3cc4e9de54.png[/img]

这是一个测试例子,手机分辨率都是480800,这些都是Button,设置的背景都是同一个图片的copy,分别放在不同的drawable上当里的效果。资料文件的是20577的图片,并且button的高一宽都是使用的wrap_content也是传说中的内容自适应。但是显示出来效果是不一样的。只能有人会说我看到了区别,但我还是不知道怎么放,ok。这个也是有讲究的。

怎么放,是根据美工的UI设计来的,比如美工是480*800的设计的就你放在drawable-hdpi目录里面,这样可以缩小和设计图的感觉的不同。下面是对照表

drawable-ldpi  240×320

drawable-mdpi  320x480

drawable-hdpi  480x800

drawable-xhdpi  960x1280 ----这个值不太确定,但是可以确定的是比hdpi更大的就是。

设计也是有原则的,都是以一个主流分辨率来设计的,随便设备升级,分辨率会越来越高,所以设计也会跟上的,因为图片太小需要放大就会模糊。但是大图同时带来的问题就是资源文件的变大,所以量发挥android的特性,比如使用9png啊。
————————————————
版权声明:本文为CSDN博主「iteye_14656」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/iteye_14656/article/details/82605454

drawable和mipmap 目录下图片的区别 - 大米稀饭 - 博客园 https://www.cnblogs.com/androidsj/p/6999807.html
114、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 建议大家只把 app 的启动图标放在 mipmap 目录中,其他图片资源仍然放在 drawable 下面。

将icon放置在mipmap文件夹还可以让我们程序的launcher图标自动拥有跨设备密度展示的能力

比如说一台屏幕密度是xxhdpi的设备可以自动加载mipmap-xxxhdpi下的icon来作为应用程序的launcher图标,这样图标看上去就会更加细腻。

鉴于mipmap这个特性,回答上面提出的问题,我们将所有的资源图片放在mipmap下面,Android系统将不得不耗费时间去寻找合适的图片,相反,放在drawable相应文件夹下,Android系统很容易根据密度找到对应的资源文件。

把splash启动图片 和一些自己项目里要执行缩放动画的图片放进去即可 其余的还放在drawable下面。
放在mipmap下 系统也就是自动设置的setHasMipmap为true了 会提前进行一个压缩 提高渲染的速度 其余的放里面就有点耗性能了。

发布了9 篇原创文章 · 获赞 0 · 访问量 1187

猜你喜欢

转载自blog.csdn.net/weixin_42349862/article/details/105255946