打开studio可以看到默认生成了
这些文件是用来放置APP icon的
规则如下
密度 | Are |
---|---|
mipmap-mdpi | 48*48 |
mipmap-hdpi | 72*72 |
mipmap-xhdpi | 96*96 |
mipmap-xxhdpi | 144*144 |
mipmap-xxxhdpi | 192*192 |
还有项目中的一些图片放置规则如下
dpi范围 | 密度 |
---|---|
0dpi~120dpi | ldpi |
120dpi~160dpi | mdpi |
160dpi~240dpi | hdpi |
240dpi~320dpi | xhdpi |
320dpi~480dpi | xxhdpi |
480dpi~640dpi | xxxhdpi |
dpi获取方法
float xdpi = getResources().getDisplayMetrics().xdpi;
float ydpi = getResources().getDisplayMetrics().ydpi;
选择ui图的时候,尽量选取高密度的,比如我的手机是xxhdpi的 我会选择高密度的图放在里面
在大屏手机能很好的适配,同时在小屏手机上,图片会被缩小,使用内存也会减小,这样是可行的
比如160dpi-240dpi的手机优先找hdpi里面的图片,发现没有,这个时候会往上继续找,然后在XXHDPI里面找到了图片,系统会判断这是高密度的手机使用的图片,所以在放置到你的手机上的时候会自动给你缩小放置
反过来 如果你把所有的图片放置在mdpi里面,比如我的手机是XXHDPI,当程序运行的时候,会优先在XXHDPI里面找,发现没有,最后在mdpi里面找到了,会判断这是低密度图片,然后会放大图片,这样的话在那种大的项目里面很容易造成内存溢出
现在安卓市场主流设备一般都是xxhdpi所以一般把图片放置到这里面就行了,不用追求更高的XXXHDI