您应该能够获得此处所述的设备显示属性,然后通过将结果与此列表进行比较来确定运行时正在使用的资源:
根据此信息,您可以推断出以下内容,这些内容也可能与您的问题相关:
四个主要密度之间存在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;
}
Run Code Online (Sandbox Code Playgroud)