我正在尝试以1220:1000的尺寸比例和最大300dp的最大高度显示以父级为中心的图像(即使在大屏幕上也要保持较小的图像)

<android.support.constraint.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <com.facebook.drawee.view.SimpleDraweeView
        android:id="@+id/image"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginStart="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="10dp"
        android:layout_marginEnd="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginBottom="10dp"
        android:adjustViewBounds="true"
        android:scaleType="centerInside"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintDimensionRatio="1220:1000"
        app:layout_constraintHeight_max="200dp"  ==> This line break the ratio (the image is not displayed)
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
app:layout_constraintHeight_max属性打破了比率。
有办法吗?

最佳答案

如果要强制执行max_height并同时保持尺寸比例,则需要根据高度限制宽度。您可以通过将W添加到您的比率中来实现:
app:layout_constraintDimensionRatio="W,1220:1000"
这将首先限制高度,然后相应地设置宽度以满足比率。

有关此尺寸比例如何工作的更多信息,请参见documentation

10-08 18:24