Android: сохранить соотношение для полной ширины и неопределенной высоты ImageView в ConstraintLayout? - PullRequest
1 голос
/ 07 апреля 2019

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

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

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

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

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

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

<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 во всю ширину (от левой стороны экрана до правой), сохраняя его соотношение (чтобыего высота была бы достаточно велика)?

Ответы [ 2 ]

1 голос
/ 08 апреля 2019

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

Ваш код ..

android:background="@drawable/ic_background_stars"

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

app:srcCompat="@drawable/ic_background_stars"

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

1 голос
/ 07 апреля 2019

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...