全新的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 新手)是在密度布局文件夹的布局中放置一个隐藏常量,并检查代码中的常量以查看正在使用哪个密度常量。
问题是:如果设备报告的值与常量不匹配,我可以在没有布局中常量的代码中确定这个值吗?
谢谢