У меня есть ImageView
, который должен растягиваться с шириной экрана. Но я не хочу, чтобы вид растягивался до бесконечности. Мне также нужно сохранить соотношение изображения до 16: 9. Мне трудно установить максимальную ширину при использовании процентов в ConstraintLayout
. Я обнаружил, что соотношение можно установить с помощью ConstraintLayout, но использовать этот макет не обязательно, пока это соотношение будет сохранено (обратите внимание, что я не могу использовать стороннюю библиотеку, кроме Glide). Вот что у меня сейчас.
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/list_item_image"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintDimensionRatio="16:9"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/list_item_title"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent="0.5"
app:layout_constraintWidth_max="163dp"
tools:src="@color/white" />
<TextView
android:id="@+id/list_item_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/list_item_image"
app:layout_constraintTop_toTopOf="parent"
tools:text="Test Title" />
</android.support.constraint.ConstraintLayout>
Без app:layout_constraintWidth_max
все работает нормально, но как только этот атрибут установлен, процент перестает работать вообще, и для ширины устанавливается какое-то произвольное значение (определенно не 163dp, который я использовал). Но самое интересное в том, что если максимальная ширина больше половины ширины экрана, процент снова работает. Кажется, что эти два атрибута не могут работать вместе, но я не знаю, как еще определить, что мне нужно делать.