2013-04-07 53 views
3

我已完成我的应用程序的编码,并且正在运行Lint以确保解决所有性能问题。图像的密度无关(下降)大小差异显着

我为ldpi,mdpi,hdpi创建了图形& xhdpi;但皮棉告诉我什么是错的:

The image btn_homepage_journal.png varies significantly in its density-independent (dip) size across the various density versions: 
drawable-xhdpi\btn_homepage_journal.png: 93x75 dp (186x149 px), 
drawable-hdpi\btn_homepage_journal.png: 76x61 dp (114x92 px), 
drawable-mdpi\btn_homepage_journal.png: 61x49 dp (61x49 px), 
drawable-ldpi\btn_homepage_journal.png: 48x48 dp (36x36 px) 

我MDPI测试设备是银河王牌,我的xhdpi测试设备是银河S3和图形看起来正常。

我不明白这个警告是想告诉我什么:对于我的xhdpi图像的186x149像素(这完全符合我的xhdpi布局),什么是93x75 dp指的是什么?

下面是我使用的每一个DPI文件夹中的图片:

ldpi mdpi hdpi xhdpi

回答

5

Lint是显示你的密度独立大小会为每个图像,或基本上如果mdpi的大小不得不为你改变大小的话。它预期的相对大小将为: xhdpi:200% hdpi:150% mdpi:100% ldpi; 75% 因此,如果你的mdpi图像是61x49,那么你的ldpi会达到75%,即46x37。 也,它会希望你的xhdpi是122x98,而不是你有的186x149。

因此,看看每个数字集 - 左侧基本上指示图像看起来像什么大小,如果它被调整为mdpi显示。 因此理论上这应该是真实的:

xhdpi * 0.5 = =华电国际* 0.667 == == MDPI LDPI * 1.33

在实践中,你可以把它任何你想要的方式,但它会很艰难为您的布局相互对应。

+0

感谢;我现在明白了。但是,通过眼睛,我的xhdpi图形应该是186x149 - 它看起来很蠢,为122x98。那么我应该忽略这个Lint建议吗? – DaveSav 2013-04-07 00:45:52

+0

我肯定会忽略它。无论如何,这只是对尺码的一个建议。 – HalR 2013-04-07 01:04:21

+0

随着S3,看看这个(以防万一你没有使用该方案):http://stackoverflow.com/questions/11699761/android-s3-layout-vs-galaxy-nexus-layout/12557007#12557007 – 2013-04-07 01:18:35

2

有时代码胜于雄辩:

public static void logGfxVarioFromXXHDPI(final int height, final int width) { 
    RapidLog.i("GFX","xxxhdpi: (" + (int)(height * (4/3.0)) + "x" + (int)(width * (4/3.0)) + ")"); 
    RapidLog.i("GFX","xxhdpi: (" + (height) + "x" + (width) + ")"); 
    RapidLog.i("GFX","xhdpi: (" + (int)(height * (2/3.0)) + "x" + (int)(width * (2/3.0)) + ")"); 
    RapidLog.i("GFX","hdpi: (" + (int)(height * 0.5) + "x" + (int)(width * 0.5) + ")"); 
    RapidLog.i("GFX","mdpi: (" + (int)(height * (1/3.0)) + "x" + (int)(width * (1/3.0)) + ")"); 
    RapidLog.i("GFX","ldpi: (" + (int)(height * 0.25) + "x" + (int)(width * 0.25) + ")"); 
} 

好运