我对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?我说的对吗?
答案 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"