Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 图像的密度无关(dip)大小差异很大_Android_Performance - Fatal编程技术网

Android 图像的密度无关(dip)大小差异很大

Android 图像的密度无关(dip)大小差异很大,android,performance,Android,Performance,我已经完成了应用程序的编码,正在运行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.

我已经完成了应用程序的编码,正在运行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测试设备是Galaxy Ace,我的xhdpi测试设备是Galaxy S3,图形看起来不错

我不明白这个警告想告诉我什么:对于我的186x149 px的xhdpi图像(它非常适合我的xhdpi布局),93x75 dp指的是什么

以下是我在每个dpi文件夹中使用的图像:


Lint向您展示了每个图像的密度无关大小,或者如果必须为您更改大小,mdpi的大小基本上是什么。预计的相对尺寸为: xhdpi:200% hdpi:150% mdpi:100% ldpi;75% 因此,如果您的mdpi映像是61x49,那么您的ldpi应该是其中的75%,或者说是46x37。 此外,它还希望您的xhdpi是122x98,而不是您现有的186x149

因此,查看每个数字集——左侧基本上指示了图像的大小,如果为mdpi显示调整大小的话。 所以理论上这应该是正确的:

xhdpi*0.5==hdpi*0.667==mdpi==ldpi*1.33


在实践中,您可以按照自己的方式制作,但布局之间很难相互协调。

有时代码胜于文字:

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) + ")");
}

祝你好运

谢谢;我现在明白了。但是,从外观上看,我的xhdpi图形应该是186x149-它在122x98看起来很愚蠢。所以我应该忽略这个皮棉建议吗?我当然会忽略它。不管怎样,这只是一个关于尺寸的建议。对于S3,也可以看看这个(以防您没有使用该方案):