为什么我的 Android 设备在 410dp 时应用 sw480dp 样式?

Why my Android device is applying sw410dp styles when it is 480dp?

提问人:GreatNews 提问时间:8/21/2023 最后编辑:TylerHGreatNews 更新时间:8/23/2023 访问量:29

问:

我正在测试不同屏幕尺寸的 Android 应用程序。为此,我创建了 360dp、390dp、410dp 和 480dp 的尺寸(也有默认值 .xml)。

我正在模拟器上测试和调整样式,一切正常。但是,当我在摩托罗拉 g22 物理设备上测试时,样式被破坏了。

我在谷歌上研究过,它有一个 720px x 1600px,6.5 英寸。它是一个 hdpi (1.5 dpi)。
因此,应用我在此博客中找到的方程式

px = dp * dpi / 160 = dp * hdpi

dp = px / hdpi

dp = 720 / 1.5

dp = 480dp

可以肯定的是,我手动创建了一个具有相同分辨率的模拟器硬件配置文件,它实际上具有 480dp。
enter image description here

由于进行了几次测试,我发现它正在应用 410dp 的尺寸,但找不到原因。

另一方面,我一直用于测试的 480dp 模拟器是 Galaxy A12。它具有相同的特性,但在这种情况下,480dp 尺寸被相应地应用。

知道为什么会这样吗?

Android 仿真 维度

评论

0赞 CommonsWare 8/21/2023
“我已经创建了 360dp、390dp、410dp 和 480dp 的尺寸”——这是一个重要的代码味道。有数以万计的 Android 设备型号,具有数百种不同的屏幕分辨率。
0赞 GreatNews 8/22/2023
好的,那么您建议如何涵盖不同的分辨率?
0赞 CommonsWare 8/22/2023
如果你的设计师正在为这些尺寸中的每一种创建完全独立的设计,那么你的设计师就会喝醉了,尺寸资源对你没有帮助。否则,您需要与设计人员一起确定使其设计适应不同屏幕尺寸的规则,并实现布局/可组合项以匹配这些规则。这不太可能需要数百个单独的维度资源值文件,甚至需要其中的五个。如果您在确定如何实施其规则时遇到问题,请询问其他 Stack Overflow 问题。
0赞 GreatNews 8/22/2023
我没有设计师,这是一个个人项目。但是,你告诉我我正在做一个非常糟糕的练习。好的,但你没有说为什么,也没有给出其他选择。我应用了 swXdp 方法,因为这是我所读到的对不同设备分辨率做出响应的良好做法。此外,假设我使用了一种糟糕的方法,您没有回答为什么它采用 410dp 而不是 480dp。你可能说的是对的,但你对这些评论没有任何帮助。
0赞 CommonsWare 8/22/2023
“但你没有说为什么,也没有给出其他选择”——细节会根据你试图实现的设计而有所不同。“我应用了swXdp方法,因为这是我所读到的对不同设备分辨率做出响应的良好做法” - 对于不同屏幕尺寸的重大更改和完全不同的设计,例如在手机和平板电脑之间,使用布局资源曾经是一个很好的方法。将它们用于尺寸从来都不是一个好方法,更不用说将它们用于细粒度的尺寸差异了。swNNNdp

答: 暂无答案