我想知道在应用程序运行时使用的是哪个drawable资源,它可能来自ldpi、mdpi、hdpi或xhdpi。
我想知道在应用程序运行时使用的是哪个drawable资源,它可能来自ldpi、mdpi、hdpi或xhdpi。
从这些信息中,您可以推断出以下内容,这也可能与您的问题相关:
四种主要密度之间存在3:4:6:8的缩放比例(忽略tvdpi密度)。因此,在ldpi中的9x9位图在mdpi中为12x12,在hdpi中为18x18,在xhdpi中为24x24。
首先,您需要获取设备的像素密度。
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;
}
getResources().getDisplayMetrics().densityDpi
它将是DENSITY_LOW、DENSITY_MEDIUM或DENSITY_HIGH其中之一。
这不是一个确切的答案,但你看过这个了吗:http://developer.android.com/guide/practices/screens_support.html
ldpi: 低密度屏幕(~120dpi)的资源
mdpi: 中等密度屏幕(~160dpi)的资源
hdpi: 高密度屏幕(~240dpi)的资源
xhdpi: 特别高密度屏幕(~320dpi)的资源
这些是一般性的指导方针,虽然不完美,但是是一个很好的开始。
从布局文件夹打开xml文件。在底部,您会找到图形布局选项卡。在那里,您将能够查看xml文件的图形视图。对于左上角,请选择要测试可绘制的不同分辨率。它将相应地刷新视图。
这里是一个示例代码来查找它。 简单地将一些不同的可绘制对象放入不同的文件夹中,并检查设备自动选择哪个图像。