这个问题已经在这里有一个答案:
- 如何检查Android设备的HDPI屏幕或MDPI的屏幕? 6个回答
没有任何的代码片段的应用,如何让屏幕的屏幕分辨率和长度。 我怎么能找到该设备是否是LDPI,MDPI,华电国际或xhdpi?
这个问题已经在这里有一个答案:
没有任何的代码片段的应用,如何让屏幕的屏幕分辨率和长度。 我怎么能找到该设备是否是LDPI,MDPI,华电国际或xhdpi?
编辑:使用DisplayMetrics
得到屏幕的密度
getResources().getDisplayMetrics().densityDpi;
这将返回一个代表下列常量的int值。 DisplayMetrics.DENSITY_LOW ,DisplayMetrics.DENSITY_MEDIUM, DisplayMetrics.DENSITY_HIGH, DisplayMetrics.DENSITY_XHIGH
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;
}
这将基于thsi可以识别设备返回以下常量
试试这个
int screenSize = getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK;
switch(screenSize) {
case Configuration.SCREENLAYOUT_SIZE_LARGE:
Toast.makeText(this, "Large screen",Toast.LENGTH_LONG).show();
break;
case Configuration.SCREENLAYOUT_SIZE_NORMAL:
Toast.makeText(this, "Normal screen",Toast.LENGTH_LONG).show();
break;
case Configuration.SCREENLAYOUT_SIZE_SMALL:
Toast.makeText(this, "Small screen",Toast.LENGTH_LONG).show();
break;
default:
Toast.makeText(this, "Screen size is neither large, normal or small" , Toast.LENGTH_LONG).show();
}
来源识别屏幕分辨率
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int density = dm.densityDpi;
密度变量是在对应于不同的DPI DisplayMetrics定义的常数。