全新的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新手)将在密度布局文件夹的布局中放置一个隐藏常量,并检查代码中的常量以查看正在使用的密度常量。
问题是:我可以在代码中确定此值而不使用布局中的常量,并且设备报告的值与常量不匹配吗?
由于
答案 0 :(得分:1)
213 的报告为DENSITY_TV
。
请参阅http://developer.android.com/reference/android/util/DisplayMetrics.html#DENSITY_TV
答案 1 :(得分:0)
我还拥有Google Nexus 7,我知道它的密度为tvdpi。