android drawable文件夹放入图片规则

    1、在中Menifest中添加子元素,android:anyDensity="true"时,应用程序安装在不同密度的终端上时,程序会分别加载xxhdpi、xhdpi、hdpi、mdpi、ldpi文件夹中的资源。

    相反,如果设为false,即使在文件夹下拥有相同资源,应用不会自动地去相应文件夹下寻找资源。(引用)

    2、如果有默认文件夹drawable,则系统如果在其他dpi文件夹下找不到图片时会使用drawable下面的图片,但是系统使用默认drawable文件夹和drawable_dpi文件夹下图片的方式不同:

    drawable文件夹下图片首先进行的是普通的缩放,再进行.9规则缩放,而drawable_dpi下图片则只会进行.9规则缩放。

示例:

    现在有一部屏幕密度为320的手机,则会使用drawable_xhdpi文件夹下的图片,但是如果在layout中规定使用图片作为某控件背景,控件高度为50dp,而drawable_xhdpi下图片高度为50sp,这个时候则会进行.9规则缩放,高度扩大一倍

但是如果在drawable图片下使用此图片,则会先进行普通缩放,再进行.9缩放

原始图片:


大小:343*57


布局代码:

    
    
    


 
  


放入drawable后效果


android drawable文件夹放入图片规则_第1张图片

分析:明明171dp在xhdpi中是372px,为什么宽度会进行.9规则缩放?因为在drawable中图片会先进行普通缩放,先将373*57转化为373dp*57dp,然后发现view中只有171dp,所以再进行.9规则缩放,将长度缩短两倍。同理,高度为80dp,所以再将高度进行.9规则缩放,拉长1.6倍。

放入drawable-xhdpi后效果

android drawable文件夹放入图片规则_第2张图片

分析:可以看出才,长度没有进行.9规则缩放,高度进行了.9规则缩放。原因是系统分析图片长度为373px,view为171dp宽,转化为px为372,基本无需缩放,高度为80dp,转化为px为160,需要拉伸3.2倍,所以才会出现高度拉伸比上一张图片更剧烈的情况。

分析


Ps

这点对于非.9图片没有影响


你可能感兴趣的:(android应用开发)