Подтвердить что ты не робот

Как масштабировать изображение в ImageView, чтобы оно "соответствовало",

Я хочу масштабировать изображение в ImageView следующим образом. ImageView имеет некоторые размеры Ширина (W) и Высота (H). Изображение, которое я помещаю в изображение, может быть меньше или больше, чем WxH. Я хочу, чтобы он масштабировался, сохраняя пропорции для заполнения пространства WxH.

Кажется, что самое близкое к тому, что я хочу, это android: scaleType = "centerInside", но я вижу, что если изображение меньше, чем WxH, оно поместит небольшую немасштабированную версию этого изображения в центр ImageView (как говорит документация), но я хочу, чтобы он масштабировал его до "подгонки", показывая все изображение и растягивая его до максимально возможного размера контейнера, не обрезая ничего. Другими словами, соотношение сторон, сохраняющее растяжение, до тех пор, пока ширина или высота не ударятся по краю контейнера (ImageView).

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

4b9b3361

Ответ 1

Из Android-документов...

public static final Matrix.ScaleToFit CENTER

Вычислите масштаб, который будет поддерживать исходное соотношение сторон src, но также гарантирует, что src полностью помещается внутри dst. По крайней мере одна ось (X или Y) будет точно соответствовать. Результат центрируется внутри dst.

Атрибут XML для этого...

android:scaleType="fitCenter"

Ответ 2

Мы можем использовать свойство scaleType для ImageView для масштабирования изображения в ImageView. Android предоставляет 8 свойств scaleType, которые мы можем использовать в соответствии с требованиями пользователя.

1) ЦЕНТР: центрируйте изображение в представлении, но не масштабируйте.

2) CENTER_CROP: масштабируйте изображение равномерно (поддерживайте пропорции изображения), чтобы обе размеры (ширина и высота) изображения были равны или больше соответствующего размера представления (минус заполнение).

3) CENTER_INSIDE: масштабируйте изображение равномерно (поддерживайте пропорции изображения), чтобы обе размеры (ширина и высота) изображения были равны или меньше соответствующего размера представления (минус заполнение).

4) FIT_CENTER: масштабируйте изображение с помощью CENTER.

5) FIT_END: масштабируйте изображение с помощью END.

6) FIT_START: масштабируйте изображение с помощью START.

7) FIT_XY: масштабируйте изображение, используя FILL.

8) MATRIX: масштабирование с использованием матрицы изображений при рисовании.

Например: Атрибут XML для этого...

Android: scaleType = "fitCenter"