В ConstraintLayout
ImageView
привязывается к своему родителю таким образом, чтобы:
Его левая сторона привязана к левой стороне экрана
Его правая сторона связана с правой стороной экрана
Его верхняя сторона связана с нижней стороной виджета
Его нижняя сторона связана с нижней стороной экрана
Таким образом, мой 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:background="@drawable/ic_background_stars"
Вместо этого используйте его как ресурс изображения.
app:srcCompat="@drawable/ic_background_stars"
И тип масштаба по умолчанию ImageView должен сделать всю работу за вас. Иначе, вы можете даже экспериментировать с различными типами шкал.
Я думаю, что вы можете использовать app:layout_constraintDimensionRatio="your ratio"
чтобы сохранить соотношение сторон, если ваше изображение
Например, если вы хотите квадрат, вам нужна такая же ширина и высота, поэтому используйте - app:layout_constraintDimensionRatio="1:1"