引用 http://blog.csdn.net/guolin_blog/article/details/50727753
mipmap文件夹主要用来存放icon,命名规则和drawable文件夹很相似,icon放置在mipmap文件夹还可以让我们程序的launcher图标自动拥有跨设备密度展示的能力。
对于每种密度下的icon应该设计成什么尺寸其实Android也是给出了最佳建议,icon的尺寸最好不要随意设计,因为过低的分辨率会造成图标模糊,而过高的分辨率只会徒增APK大小。建议尺寸如下表所示:
系统会根据当前手机屏幕密度去寻找相应屏幕密度drawable文件夹下的图片,可以使用如下方法先获取到屏幕的dpi值:
float xdpi = getResources().getDisplayMetrics().xdpi;
float ydpi = getResources().getDisplayMetrics().ydpi;
其中xdpi代表屏幕宽度的dpi值,ydpi代表屏幕高度的dpi值,通常这两个值都是近乎相等或者极其接近的。参考如下表匹配文件夹
如果没有,系统将按高密度到低密度drawable文件夹顺序寻找图片。
如果系统在高drawable文件夹下找到相应图片,系统会认为该图片是专门为高密度的设备设计的,如果直接将这张图在当前低密度设备上使用就会可能出现像素过高的情况,自动帮我们做一个缩小操作。
如果系统在低drawable文件夹找到相应图片,系统会认为该图片是专门为低密度设备设计的,如果直接将这张图在当前高密度设备上使用可能出现像素过低的情况,系统自动帮我们做一个放大操作。
drawable-nodpi文件夹是在匹配密度文件夹和更高密度文件夹都找不到的情况下才会去这里查找图片的,因此放在drawable-nodpi文件夹里的图片通常情况下不建议再放到别的文件夹里面。
图片缩放倍数倍数: 每一种密度的dpi范围都有一个最大值,这个最大值之间的比例就是图片会被系统自动放大的比例
理想情况是ui设计人员根据每一种密度文件下设计相应大小的图片。现实情况下可能只有一套,那么图片资源应该尽量放在高密度文件夹下,这样可以节省图片的内存开支。图片往往被缩小,占用的内存较少。ui在设计图片的时候也应该尽量向高密度屏幕的设备来设计。就目前来讲,由于drawable-xxxhdpi设备支持较少,因此最佳放置图片资源的文件夹就是drawable-xxhdpi。