三星Galaxy S8 +:设备指标提供错误的设备屏幕像素密度

时间:2017-12-21 09:18:10

标签: java android samsung-mobile dpi

这就是我使用Android Studios获取屏幕密度的方法

float density = getResources().getDisplayMetrics().density;

根据设备规格,S8 +具有 4.0密度值且属于 xxxhdpi 类别

请参阅此网站https://material.io/devices/, 附上截图供参考 here

但上面代码返回的值是 2.9 ,这似乎非常错误 check here

尝试使用densityDpi,但它也返回xxhdpi而不是xxxhdpi

int densityDpi = context.getResources().getDisplayMetrics().densityDpi;

以上代码在其他设备上运行良好,在OnePlus 5T,Nexus 6P,Redmi Note 4,Moto g4 +和其他设备上测试......面对Galaxy s8 +的问题,尚未测试Galaxy s8,但我猜结果会是一样的。

这是一个知道错误,还是我做错了什么?

如果没有s8 +设备的正确像素密度信息,很难管理S8 +设备的布局。

2 个答案:

答案 0 :(得分:0)

您需要初始化显示指标对象

你可以试试这个:

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
flat density=metrics.density;
flat densityDpi=metrics.densityDpi;

答案 1 :(得分:0)

就像瑟斯曼说的那样。您的手机没有达到最大分辨率。如果您获取屏幕截图中报告的分辨率并将其除以报告的2.9并将其乘以4,则最终得出的最大分辨率为2960x1440