我有一个 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_horizontal_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 种不同的设备上对此进行测试:
- 三星 Galaxy S4(安卓版本 4.2.2)
- 三星 Galaxy S3(安卓版本 4.1.2)
- 摩托罗拉 XOOM(Android 版本 4.1.2)
对于三星 Galaxy,我得到了42vert
和horz
42 的返回值。无论设备是垂直的还是水平的,这都是正确的。(为什么它们不等于 14,我不确定,但只要它们保持不变,我就满足了。)
但是,对于 XOOM,当设备垂直时,我得到两个vert
和14 的返回值。horz
但是,当我将其转为水平时,它vert
保持在 14 并horz
变为 128(几乎是其垂直值的 10 倍)。
我的问题是,为什么在运行时会有这种自动变化?代码中没有任何内容引用它并使其更改(我知道这一点,因为其他设备没有这个问题)。
通常,我不会太在意这个,但在这种情况下,它确实让我的 UI 看起来很时髦。我查了一下,但听起来其他任何人在运行时都没有更改它们的边距。