【问题标题】:How to find the device as LDPI MDPI HDPI or XHDPI [duplicate]如何将设备查找为 LDPI MDPI HDPI 或 XHDPI [重复]
【发布时间】:2013-02-25 06:24:44
【问题描述】:

没有任何代码sn-p的应用,如何获取屏幕分辨率和屏幕长度。我怎样才能知道设备是 ldpi、mdpi、hdpi 还是 xhdpi?

【问题讨论】:

  • 不,我不想编码和查找设备类型?
  • 有点晚了,但 Playstore 上有这个应用程序,无需编写代码 sn-p 即可为您提供所需的内容,但不幸的是,该应用程序已从 google play 商店中删除,但我能够从我安装的设备中提取 apk 并将其上传到以下链接:mediafire.com/?2jccjo17mvxgljt 希望这可以帮助您获得所需的内容。如果这对您有帮助,请告诉我
  • 如果您想快速参考,Google 提供了一些流行设备的屏幕详细信息:design.google.com/devices

标签: android android-screen


【解决方案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();
}

来源Identifying screen resolutions

【讨论】:

  • 这个答案实际上并没有回答这个问题。它询问的是密度,而不是大小。
  • @SiddharthLele 因为你我才找到它....谢谢
  • @kabuko 更新答案...
  • 我不想编码 - 我可以看到手机吗?目的:三星S4 3月上市-我想知道密度,
  • 根据 Gabe 和您发布的内容,我需要对 sn-p 进行编码 - 在设备上运行它并找到设备类型。但是要求是查看设备,知道屏幕规格 - 我能找到设备类型 - 我记得一个公式不清楚 [宽度的平方根 * 高度]/长度 .. 等等等等 .. 如果值为 1 >1.25 >1.50 我可以找到设备类型。你能帮我解释一下吗?
【解决方案2】:
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int density = dm.densityDpi;

密度变量是DisplayMetrics中定义的常数,对应不同的dpi。

【讨论】:

  • 我不想编码 - 我可以看到手机吗?目的:三星S4 3月上市-我想知道密度,
  • 然后使用谷歌搜索。然后你在错误的网站上提问 - 这是一个询问编程问题的网站,而不是关于设备规格的网站。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-01
  • 1970-01-01
  • 2018-12-23
  • 1970-01-01
  • 2019-02-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多