Android: сохранить соотношение для полной ширины и неопределенной высоты ImageView в ConstraintLayout?

1

В ConstraintLayout ImageView привязывается к своему родителю таким образом, чтобы:

  1. Его левая сторона привязана к левой стороне экрана

  2. Его правая сторона связана с правой стороной экрана

  3. Его верхняя сторона связана с нижней стороной виджета

  4. Его нижняя сторона связана с нижней стороной экрана

Таким образом, мой ImageView выглядит во всю ширину, а его высота - это расстояние между виджетом и нижней частью экрана.

<ImageView
    android:id="@+id/imageView16"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:orientation="horizontal"
    android:background="@drawable/ic_background_stars"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toBottomOf="@id/linearLayout4"
    app:layout_constraintBottom_toBottomOf="parent"
    />

Проблема в том, что SVG, который он содержит, также имеет полную ширину, но соотношение было уничтожено: оно недостаточно велико с точки зрения высоты. Так что SVG искажен.

Вопрос

Как я мог показать SVG во всю ширину (от левой стороны экрана до правой), сохраняя его соотношение (чтобы его высота была достаточно большой)?

Теги:
android-constraintlayout
android-imageview

2 ответа

0

В дополнение к последнему ответу причина, по которой ваше изображение не масштабируется должным образом, заключается в том, что вы используете его в качестве фона.

Ваш код..

android:background="@drawable/ic_background_stars"

Вместо этого используйте его как ресурс изображения.

app:srcCompat="@drawable/ic_background_stars"

И тип масштаба по умолчанию ImageView должен сделать всю работу за вас. Иначе, вы можете даже экспериментировать с различными типами шкал.

0

Я думаю, что вы можете использовать app:layout_constraintDimensionRatio="your ratio" чтобы сохранить соотношение сторон, если ваше изображение

Например, если вы хотите квадрат, вам нужна такая же ширина и высота, поэтому используйте - app:layout_constraintDimensionRatio="1:1"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню