我正在使用ConstraintLayout让我的应用响应不同的屏幕大小。
我想用比率来调整我的小部件的大小。 因此,要使用比率,我必须将我的宽度和高度设置为match_constraints。
所以我正在做的是:
<ImageView
android:id="@+id/my_img"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginBottom="150dp"
android:layout_marginStart="250dp"
android:layout_marginTop="5dp"
android:adjustViewBounds="true"
android:src="@drawable/img_test"
app:layout_constraintBottom_toTopOf="@+id/bot_img"
app:layout_constraintDimensionRatio="h,125:50"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/top_img" />
因此,我将使用dp中的边距和比率来设置我的img大小。 问题是,当我使用不同的屏幕尺寸时,我的img将无法保持我想要的确切比例。
你能帮帮我吗?我使用ConstraintLayout吗?非常感谢答案 0 :(得分:1)
我认为你误解了constraintDimensionRatio
的使用。使用width="0dp"
设置两个水平约束,并设置constraintDimensionRatio(如1:1)。并且只设置一个垂直约束(如顶部)和height="0dp"
,并保留另一个(反之亦然,具体取决于您的要求)。现在,您的视图宽度将尽可能多地扩展,高度将根据比例进行调整。请参阅以下示例以便更好地理解。
<ImageView
android:id="@+id/my_img"
android:layout_width="0dp"
android:layout_height="0dp"
android:scaleType="centerCrop"
android:src="@drawable/img_test"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"/>
上面的代码将生成一个方形图像,它将根据不同的父宽度进行缩放。
快乐编码:)