我想知道在运行来自ldpi,mdpi,hdpi或xhdpi的应用程序时使用了哪个可绘制资源。
答案 0 :(得分:7)
您应该能够按照here所述获取设备的显示属性,然后通过将结果与此列表进行比较来确定运行时正在使用的资源:
根据这些信息,您可以推断出以下内容,这些内容也可能与您的问题相关:
四种主要密度之间存在3:4:6:8的缩放比例 (忽略tvdpi密度)。因此,ldpi中的9x9位图为12x12英寸 mdpi,hdpi为18x18,xhdpi为24x24。
答案 1 :(得分:5)
您必须首先获得设备的密度。
int density= getResources().getDisplayMetrics().densityDpi;
switch(density)
{
case DisplayMetrics.DENSITY_LOW:
Toast.makeText(context, "LDPI", Toast.LENGTH_SHORT).show();
break;
case DisplayMetrics.DENSITY_MEDIUM:
Toast.makeText(context, "MDPI", Toast.LENGTH_SHORT).show();
break;
case DisplayMetrics.DENSITY_HIGH:
Toast.makeText(context, "HDPI", Toast.LENGTH_SHORT).show();
break;
case DisplayMetrics.DENSITY_XHIGH:
Toast.makeText(context, "XHDPI", Toast.LENGTH_SHORT).show();
break;
}
答案 2 :(得分:4)
我们可以通过了解设备的屏幕密度来确定这一点。
getResources().getDisplayMetrics().densityDpi
它将是DENSITY_LOW,DENSITY_MEDIUM或DENSITY_HIGH。
答案 3 :(得分:1)
这不是一个确切的答案,但你看了一下:http://developer.android.com/guide/practices/screens_support.html
ldpi:低密度(ldpi)屏幕的资源(~120dpi)
mdpi:中密度(mdpi)屏幕的资源(~160dpi)
hdpi:高密度(hdpi)屏幕的资源(~240dpi)
xhdpi:超高密度(xhdpi)屏幕(~320dpi)的资源
这些是一般指导原则,它不是完美的,但它是一个非常好的开始。
答案 4 :(得分:1)
从布局文件夹中打开xml文件。在底部,您将找到图形布局选项卡。在那里,您将能够看到xml文件的图形视图。对于左上角,选择要测试可绘制的不同分辨率。它会相应刷新视图。
答案 5 :(得分:0)
以下是查找该示例的示例代码。 只需将不同的抽屉放在不同的文件夹中,并检查设备自动拾取的图像。