android - 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
视觉上并不总是相同的大小?
解决方案
请注意,您想要的内容不可扩展且不推荐。原因是设备的尺寸在 Android 中变化很大,以及它们的像素密度。
此外,我还附上了一篇可能对您有所帮助的更笼统的文章。
然而:
A. 尝试使用“基于屏幕的物理尺寸”的其他单位,例如 mm 或 in(请参阅文档)。
B. 也许以编程方式设置它。也就是计算多少px/etc。您需要在每个设备上使其在所有设备上看起来都相同(mm)。
float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_MM, 1, getResources().getDisplayMetrics());
最后,我不确定是否是这种情况,但正如其他用户所建议的那样,也许这会有所帮助。然而,再一次,我不完全确定这是否是你需要的。在同一行中,您还可以根据带有限定符的设备的详细信息定义尺寸(请参阅此处)。
推荐阅读
- html - 你如何获得不同的 Soc。Angular中不同路线的M缩略图?
- python - 为 Python 3.6 (Windows 10) 安装 Tensorflow
- java - 从控制台运行时 Spring Boot 测试失败
- python - numpy.fft.irfft: Why is len(a) necessary?
- corda - Corda Transaction Time 从 Vault Query 中获取
- android - 如何使用 OpenSL ES 在 Android NDK 上注册回调函数
- r - 在R中复制字符串
- vba - Excel VBA 的表格边距格式不一致
- json - Scala - Circe - 没有类名的案例类序列化
- ffmpeg - 使用ffmpeg命令行工具从yuv44416le到yuv420p10le的色彩空间转换