Как установить минимальное / максимальное соотношение сторон для представления Android?
Я хочу создать представление, которое будет расти в соответствии с его родителем, а затем увеличится по высоте, чтобы обернуть загруженное изображение до максимального соотношения сторон.
В настоящее время у меня есть вид, который выглядит примерно так:
<android.support.percent.PercentRelativeLayout
android:id="@+id/ImageViewLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/ImageView"
app:layout_widthPercent="100%"
app:layout_aspectRatio="300%"
android:scaleType="fitCenter"/>
</android.support.percent.PercentRelativeLayout>
Разница здесь в том, что соотношение сторон установлено. В текущем коде, если я получаю изображение, которое не соответствует соотношению сторон 3:1, оно сжимается и помещается внутри вида. Я хотел бы, чтобы, если изображение слишком высокое, поведение оставалось прежним, но если изображение слишком широкое, ImageViewLayout оборачивает изображение, чтобы устранить мертвое пространство над / под изображением.
Я не нашел способ сделать то, что я хочу, используя ConstraintLayout или PercentRelativeLayout. Лучшее, что я придумал, - это программная проверка соотношения сторон и изменение ограничений на основе изображения.