这就是我使用 Android Studio 获取屏幕密度的方式
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 进行测试,但我猜是结果将相同。
这是已知 Bug,还是我做错了什么?
如果没有 s8+ 设备的正确像素密度信息,管理 S8+ 设备的布局变得越来越困难。
最佳答案
就像冲浪者说的。您的手机没有达到可能的最大分辨率。如果您将屏幕截图中报告的分辨率除以报告的 2.9,再乘以 4,您最终得到的最大分辨率大致为 2960x1440
关于java - 三星盖乐世 S8+ : Device Metrics Gives wrong device screen pixel density,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47921657/