gpt4 book ai didi

Android 设备在运行时自行更改水平边距

转载 作者:行者123 更新时间:2023-11-29 01:49:39 26 4
gpt4 key购买 nike

我有一个在其布局中使用以下填充的 XML:

android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"

其中 @dimen/activity_vertical_margin@dimen/activity_horizo​​ntal_margin 都是 14dp

在我的 Java 类中,我使用 toast 来查看运行时的实际边距是多少:

int vert = (int) getResources().getDimension(R.dimen.activity_vertical_margin);
int horz = (int) getResources().getDimension(R.dimen.activity_horizontal_margin);
Toast.makeText(getApplicationContext(), "vert: " + vert + "\n" + "horz: " + horz, Toast.LENGTH_LONG).show();

我正在 3 种不同的设备上进行测试:

  1. 三星 Galaxy S4(Android 版本 4.2.2)
  2. 三星 Galaxy S3(Android 版本 4.1.2)
  3. 摩托罗拉 XOOM(Android 版本 4.1.2)

对于 Samsung Galaxies,verthorz 的返回值均为 42。无论设备是垂直还是水平,都是如此。 (为什么它们不等于 14,我不确定,但只要它们不变,我就满意了。)

但是,对于 XOOM,当设备垂直时,verthorz 的返回值均为 14。但是,当我将它变为水平时,vert 保持在 14 而 horz 变为 128(几乎是其垂直值的 10 倍)。

我的问题是,为什么会在运行时自动更改?代码中没有任何内容引用它并使其发生变化(我知道这一点是因为其他设备没有这个问题)。

通常,我不会太在意这个,但在这种情况下,它确实让我的 UI 看起来很时髦。我查了一下,但听起来没有其他人在运行时更改边距。

最佳答案

每个项目中有2个dimen.xml。第一个在 values 文件夹中,另一个在 values-sw720dp-land 中。检查我们有的 values-sw720dp-land/dimen.xml

<dimen name="activity_horizontal_margin">128dp</dimen>

由于摩托罗拉 XOOM(Android 版本 4.1.2)是 720 横向设备,因此它从该值文件夹中获取维度值

关于Android 设备在运行时自行更改水平边距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19019851/

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