确定屏幕密度

时间:2013-09-26 14:17:06

标签: android constants dpi

全新的stackoverflow,还没弄清楚如何在一个帖子中提问。

这适用于主题:How to find the device as LDPI MDPI HDPI or 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,这很好,因为它与代码完美配合。但是,我的谷歌Nexus 7报告213dpi与常数不匹配,我找不到密度边界的参考。

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

问题是:我可以在代码中确定此值而不使用布局中的常量,并且设备报告的值与常量不匹配吗?

由于

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

我还拥有Google Nexus 7,我知道它的密度为tvdpi

相关问题