Android_Basic_02.关于 drawable 和 mipmap 的异同

01. 手机分辨率显示密度的了解   (缩放倍数 = 设备dpi / 图片所在密度文件夹对应的最大dpi)

      

 02. 关于drawable  和 mipmap 资源文件目录的区别

      ** 如果图标有固定的尺寸,不需要更改,那么更适合存放于  Drawable 目录;

      ** 如果图标需要变大变小,有动画效果,则更适合放置在 mipmap于目录中;

     简单点的讲,就是 app启动用的icon图标就放在mipmap中,其它的图标就放在 drawable 中;

 03. Android系统加载图片资源的规则

      a. 优先加载匹配密度资源文件夹下的资源;  (假定设备为320dpi, 则优先在 drawable-xhdpi 目录下搜索)

      b. 如果对应资源文件夹不存在或文件夹下没有资源,则会往更高一级的目录去查找,(drawable-xhdpi --> drawable-xxhdpi --> drawable-xxxhdpi);
         若找着了资源,则对资源进行相应的缩小后,展示出来;

      c. 若更高分辨率下的资源目录都不存在或资源文件不存在,则向低级别密度资源文件夹中去搜索 ( drawable-xhdpi --> drawable-hdpi --> drawable-mdpi --> drawable-ldpi )  
         若找着了资源,则对资源进行相应的放大后,展示出来
      d.  drawable 为默认目录,当所有其它密度资源文件夹都搜索完后,会来drawable中找,若找着了,就放大展示,若没找着,就报错了;

04. 当前IDEA默认生成的Android项目下,资源目录结构

     

     mipmap目录下,存放的都是软件图标;

     drawable目录,没有过多的分辨率文件夹了,  

     大家常规的做法是,手动新建 drawable-hdpi设文件夹,并将图片资源文件放在 hdpi 文件夹下

 05. 关于 drawable-v24 和 mipmap-anydpi-v26 的说明

       drawable-v24: 针对于安卓7及以上版本的设备,可以在此目录下匹配资源,对于安卓7以下的版本,将找不着版本;

       mipmap-anydpi-v26 对于安卓8及以上版本的设备有效,安卓8以下时无法在目录下搜索到资源;

 06. 同一张图片,被放置在不同分辨率下的目录,在同一设备上的展示效率变化

       --> 当存放在低分辨率目录时,系统会将图片放大展示;

       --> 当存放在高分辨率目录时,系统会将图片缩小展示;

     

 

    

原文地址:https://www.cnblogs.com/jieling/p/15316695.html