Подгонка ширины изображения в соответствии с родителями и регулировка высоты в соответствии с соотношением сторон в ImageView - PullRequest
0 голосов
/ 13 мая 2018

У меня есть ImageView в моем xml -

<ImageView
    android:id="@+id/image"
    android:layout_centerHorizontal="true"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"                     
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"/>

Я использую библиотеку Glide, чтобы извлечь изображение из URL и установить его в ImageView.

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

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

ImageView img = (ImageView) findViewById("image");
Glide.with(this).load("url here").into(img);

Какой тип scaleType следует использовать?
Возможно ли это в XML или требуется код Java?

Заранее спасибо.:)

Ответы [ 3 ]

0 голосов
/ 13 мая 2018

использовать android:scaleType:fitXY

<ImageView
android:id="@+id/image"
android:layout_centerHorizontal="true"
android:scaleType="fitXY"
android:layout_width="match_parent"
android:layout_height="wrap_content"                     
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"/>

и код Java

Glide.with(this).load(url)
                .crossFade()
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .into(img);
0 голосов
/ 13 мая 2018

Это возможно из XML. Я добился этого, используя следующий код.

        <ImageView
        android:id="@+id/ivImage"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:scaleType="fitXY"
        android:adjustViewBounds="true"/>

Масштаб XY масштабирует изображение с помощью FILL и корректирует границы вида, сохраняя соотношение сторон. Я не думаю, что вам нужно центрировать горизонтальное свойство.

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

0 голосов
/ 13 мая 2018

Вы можете использовать ConstraintLayout для этой цели.

Вы можете установить размер представления, например, 16: 9, если хотя бы одно из размеров представления установлено в «соответствие ограничениям» (0dp)

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

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