首页 > 解决方案 > Android 添加一个大小在所有设备上看起来都相同的填充

问题描述

我有一个view与我的屏幕/片段大小相同的。但是,我想在左右边缘添加一个填充,这样在所有设备上,这个填充看起来都一样大小。当我使用:

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:paddingStart="20dp"
    android:paddingEnd="20dp">
....

填充在所有设备上都不相同。在平板电脑上,它比在小型手机上要小得多。有没有办法以编程方式将所有设备上的填充设置为相等?

并且dp应该与密度无关?那么为什么在不同密度的设备上,填充设置在dp视觉上并不总是相同的大小?

标签: androidandroid-layoutpaddingdensity-independent-pixel

解决方案


请注意,您想要的内容不可扩展且不推荐。原因是设备的尺寸在 Android 中变化很大,以及它们的像素密度。

此外,我还附上了一篇可能对您有所帮助的更笼统的文章。

然而:

A. 尝试使用“基于屏幕的物理尺寸”的其他单位,例如 mm 或 in(请参阅文档)。

B. 也许以编程方式设置它。也就是计算多少px/etc。您需要在每个设备上使其在所有设备上看起来都相同(mm)。

float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_MM, 1, getResources().getDisplayMetrics());

最后,我不确定是否是这种情况,但正如其他用户所建议的那样,也许会有所帮助。然而,再一次,我不完全确定这是否是你需要的。在同一行中,您还可以根据带有限定符的设备的详细信息定义尺寸(请参阅此处)。


推荐阅读