gpt4 book ai didi

android - 运行 4.4.2 的 SPH-L710 (Sprint Galaxy S III) 误报 xdpi 和 ydpi

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:01:43 25 4
gpt4 key购买 nike

我们最近注意到一个数据异常,许多设备通过 DisplayMetrics 误报了它们的 xdpi 和 ydpi。

作为具体示例,所有运行 4.4.2 的 SPH-L710 Sprint Galaxy S III 设备报告的 xdpi 和 ydpi 约为 160。对于 1280x720 的分辨率,这将测量出约 9 英寸的屏幕尺寸,但显然不是这种情况。在 4.4.2 之前,此设备模型正确报告其 xdpi 和 ydpi:分别为 ~304 和 ~306。

我们像这样通过 DisplayMetrics 访问此信息:

DisplayMetrics dm = getResources().getDisplayMetrics();
xdpi = dm.xdpi;
ydpi = dm.ydpi;

有没有其他人注意到这些指标不一致/不可靠?是否有更准确的方法来访问此信息?

编辑:我找到了this post关于 xdpi/ydpi 不准确。 Romain 和 Dianne 似乎都承认这个问题 - 所以 DisplayMetrics 文档没有记录这些不可靠的属性这一事实对我来说似乎是非常不负责任的。

最佳答案

从 API 17 开始,您可以调用 getRealMetrics 以获得更准确的结果。

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getRealMetrics(dm);

xdpi = dm.xdpi;
ydpi = dm.ydpi;

From Display documentation

public void getRealMetrics (DisplayMetrics outMetrics)

Added in API level 17 Gets display metrics based on the real size of this display.

The size is adjusted based on the current rotation of the display.

The real size may be smaller than the physical size of the screen when the window manager is emulating a smaller display (using adb shell am display-size).

Parameters outMetrics A DisplayMetrics object to receive the metrics.

关于android - 运行 4.4.2 的 SPH-L710 (Sprint Galaxy S III) 误报 xdpi 和 ydpi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26849812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com