Android Studio中mipmap目录和drawable
使用Android Studio开发时发现有2个目录可以放置图片: mipmap vs drawable,那么他们有什么区别呢?该选择哪个呢?这里网罗各位大神的答案,共同学习:
图片还是放在drawable文件夹下吧,mipmap只放launcher icons就好了。Google官方有介绍:Managing Projects Overviewhttp://developer.android.com/tools/projects/index.html#mipmap
drawable/
For bitmap files (PNG, JPEG, or GIF), 9-Patch image files, and XML files that describe Drawable shapes or Drawable objects that contain multiple states (normal, pressed, or focused). See the Drawable resource type.
===========================================================================================
mipmap/
For app launcher icons. The Android system retains the resources in this folder (and density-specific folders such as mipmap-xxxhdpi) regardless of the screen resolution of the device where your app is installed. This behavior allows launcher apps to pick the best resolution icon for your app to display on the home screen. For more information about using the mipmap folders, seeManaging Launcher Icons as mipmap Resources
Mipmaps早在Android2.2+就可以用了,但是直到4.3 google才强烈建议使用。把图片放到mipmaps可以提高系统渲染图片的速度,提高图片质量,减少GPU压力。so,do it
我也想问这个问题。。。
经过我的研究,我认为 mipmap 支持多尺度缩放效果很好,比如一个 200*200 的图片缩放,如果我们使用 mipmap 那么系统会根据当前缩放范围选择 mipmap 里面恰当的图片,而不是想 drawable 目录下是根据当前设备的屏幕密度选择恰当的图片。如果一个 imageview 有缩放动画,使用 drawable 下的图片,会一直使用一张,来缩放图片实现 imageview 缩放动画,如果使用 mipmap 会根据缩放程度自动选择比当前分辨率大而又最接近当前分辨率的图片来做缩放处理,这样就实现了 google 官方文档中描述的更好视觉效果,更高效率的目的。这也和 mipmap 这个技术的本身含义吻合,除非 google 乱取名字。而 google 文档里面说 laucher icon 使用 mipmap 我认为是因为 laucher icon 在 laucher app 里面可能有动画,或者有的 laucher app 使用的 laucher icon 分辨率比 google 规定的大,导致使用 drawable 下面的图片会放大,而显示效果不好。
保守点跟着官方文档走:普通图片放drawable,icon图标放mipmap。既然mipmap自适应缩放效果好,那就把一些动画的图片也放进去吧。
———-原文转载自:http://blog.csdn.net/u011240877/article/details/48135639———-
———我是分隔符———
Android中提供了多个存放图片的文件夹,分别为mdpi,hdpi ,xhdpi xxhdpi, xxxhdpi。google文档上说,Andriod系统会根据手机屏幕的大小及屏幕密度去选择不同文件夹下的图片资源,以此来实现在不同大小不同屏幕分辨率下适配的问题。
比如在一个低分辨率的手机上,Android就会选择mdpi文件夹下的图片,但是如果没有在mdpi的文件夹下找见相关的资源文件,Android系统会首先从xxxhdpi 文件夹中选择文件,然后对图片资源进行缩放处理,显示在屏幕上;如果xxxhdpi 文件夹下也没有的话,依次类推,若都没找到话,会在默认的drawable文件夹中寻找。
又例如:
在一个1080×1920分辨率的手机上,Android就会选择xxhdpi 文件夹下的图片,但是如果没有在xxhdpi 的文件夹下找见相关的资源文件,Android系统会首先从xxxhdpi 文件夹中选择文件,然后对图片资源进行缩放处理,显示在屏幕上;如果xxxhdpi 文件夹下也没有的话,一次类推,若都没找到话,会在默认的drawable文件夹中寻找。
说白了的话,就是在对应的文件夹没找到,就从高分辨率的文件夹依次向低分辨率的文件夹寻找。
ps:同一张图片,低分辨率的文件夹在手机上展示会被扩大,高分辨率的文件夹在手机上会被缩小,具体原因很简单,我这里就不阐述了。其实,我们在xml中,完全可以通过dp适配。
下面在附图一张,很好的诠释了他们的关系:
---------------------
———-原文转载自:https://blog.csdn.net/jimtrency/article/details/75352858———-
——整理学习——