ImageView заполняет родительскую ширину ИЛИ высоту, но сохраняет соотношение сторон

У меня квадратное изображение (хотя эта проблема относится и к прямоугольным изображениям). Я хочу отображать изображение как можно большего размера, растягивая их при необходимости, чтобы заполнить их родителей, сохраняя при этом соотношение сторон. Изображение меньше, чем ImageView. Проблема в том, что я не могу растянуть изображение и «сопоставить» высоту и ширину ImageView.

Это мой XML-файл макета:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:padding="10dp">

    <ImageView android:id="@+id/image"
               android:layout_width="fill_parent"
               android:layout_height="fill_parent"
               android:adjustViewBounds="true"
               android:scaleType="fitCenter"
               android:layout_marginTop="10dp"/>

    <TextView android:id="@+id/name"
              android:layout_below="@id/image"
              android:layout_alignLeft="@id/image"
              android:layout_marginTop="20dp"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:textSize="18dp"/>

    <TextView android:id="@+id/name2"
              android:layout_below="@id/name"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:textSize="14dp"/>


</RelativeLayout>

Я использовал много комбинаций fill_parent, wrap_contentс несколькими типами шкалы: fitCenter, fitStart , fitEnd, centerInside, и все они рисуют изображения с правильным соотношением сторон, но ни один из них на самом деле не масштабирует изображения и сам ImageView, что приводит либо к тому, что TextView полностью выталкивается за пределы экрана, либо к пустым местам внутри ImageView, либо изображение не масштабируется, либо изображение обрезается.

Я не могу придумать правильную комбинацию для этого.

41
задан Onik 4 December 2018 в 20:13
поделиться