如何找到设备作为LDPI MDPI华电国际或XHDPI [复制](How to find the d

2019-07-20 11:30发布

这个问题已经在这里有一个答案:

  • 如何检查Android设备的HDPI屏幕或MDPI的屏幕? 6个回答

没有任何的代码片段的应用,如何让屏幕的屏幕分辨率和长度。 我怎么能找到该设备是否是LDPI,MDPI,华电国际或xhdpi?

Answer 1:

编辑:使用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();
}

来源识别屏幕分辨率



Answer 2:

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int density = dm.densityDpi;

密度变量是在对应于不同的DPI DisplayMetrics定义的常数。



文章来源: How to find the device as LDPI MDPI HDPI or XHDPI [duplicate]