1

全新的stackoverflow,还没有弄清楚如何在线程中提出问题。

这是线程:如何将设备查找为 LDPI MDPI HDPI 或 XHDPI

使用的代码是:

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;
}

我的手机 (LG Optimus L5) 报告 MDPI (160),即使技术规格声明为 144dpi,这很好,因为它与代码完美配合。但是,我的 Google Nexus 7 报告 213dpi 与常数不匹配,我找不到对密度边界的引用。

一种解决方法(我相信,Android 新手)是在密度布局文件夹的布局中放置一个隐藏常量,并检查代码中的常量以查看正在使用哪个密度常量。

问题是:如果设备报告的值与常量不匹配,我可以在没有布局中常量的代码中确定这个值吗?

谢谢

4

2 回答 2

1

213的报告是DENSITY_TV

请参阅http://developer.android.com/reference/android/util/DisplayMetrics.html#DENSITY_TV

于 2013-09-26T14:28:54.523 回答
0

我还拥有一台 Google Nexus 7,我知道它有tvdpi密度。

于 2013-09-26T14:25:00.837 回答