相同宽度dp的不同屏幕尺寸

时间:2019-01-30 07:00:42

标签: android android-layout

我对android中不同的屏幕尺寸支持感到困惑。假设我们有 phone1 ,例如 1000 * 500像素 phone2 2000 * 1000像素,两者的像素密度是 xhdpi(320)(phone2的质量较低)。好吧,如果我为xhdpi (res/drawable-xhdpi)定义了一个布局,这些手机中的哪一个将以xhdpi布局为目标?如果它们都存在,这里将出现问题,phone1的最大宽度为250dp(500/2),phone2的最大宽度为500dp(1000/2),如何设置对象,例如在中间活动。电话1将为125dp,电话2将为250dp?我说的对吗?

2 个答案:

答案 0 :(得分:2)

您是对的,Android开发人员在各种屏幕密度上都没有什么麻烦,因此这是您应该使用dp或sp值而不是px值的主要原因。您还可以使用特殊的布局(例如RelativeLayout,ConstraintLayout)将视图放置在布局或父容器本身上的其他视图的上下文中。

在您的情况下(您需要集中视图),如果它们允许您设置布局中心位置的规则,并且不考虑屏幕大小和密度,则可以使用几个现有布局,而现有视图将位于中心的布局。

还可以检出the official docs

答案 1 :(得分:0)

可以使用Constraint Layout和以下参数完成居中图像:

Could not instrument class jdk/nio/zipfs/ZipFileSystem: null.
Could not instrument class jdk/nio/zipfs/ZipFileSystem$IndexNode: null.
Could not instrument class jdk/nio/zipfs/ZipFileSystem$Entry: null.
Could not instrument class jdk/nio/zipfs/ZipFileSystem$EntryInputStream: null.
Could not instrument class jdk/nio/zipfs/ZipFileSystem$5: null.
Could not instrument class jdk/nio/zipfs/ZipFileSystem$EntryOutputStream: null.
Could not instrument class jdk/nio/zipfs/ZipFileStore: null.
Could not instrument class jdk/nio/zipfs/ZipFileSystem$4: null.
Could not instrument class jdk/nio/zipfs/ZipCoder: null.
Could not instrument class jdk/nio/zipfs/ZipCoder$UTF8: null.
Could not instrument class jdk/nio/zipfs/ZipPath: null.
Could not instrument class jdk/nio/zipfs/ZipFileSystem$END: null.
Could not instrument class jdk/nio/zipfs/ZipFileSystem$ParentLookup: null.
Could not instrument class jdk/nio/zipfs/ZipDirectoryStream: null.
Could not instrument class jdk/nio/zipfs/ZipDirectoryStream$1: null.

保持相同的边距/填充,您可以在Constraint Layout中使用简单的权重

app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"

或者,如果您不满意,可以使用SDP

设置适当的值。
android:layout_constraintHorizontal_weight="2"