Intereting Posts
Переключить элемент навигационного ящика с помощью библиотеки поддержки дизайна на Android Есть ли библиотека для плавающих кнопок действия (FAB) с ярлыками? Как использовать getChats в tdlib Как уменьшить размер большого размера до размера миниатюр в android Публикация Google Play App с двумя разными именами разработчиков Android Studio 3 canary & Kotlin Долгое постоянное TCP-соединение на Android Использование mockito для проверки функции, использующей контекст Как изменить заголовок панели инструментов с помощью компоновки вкладки «Библиотека библиотеки»? MapView throwing IllegalArgumentException – неправильный размер изображения: 192 192 RecyclerView: java.lang.IndexOutOfBoundsException: обнаружена несогласованность. Недопустимая позиция позиции Получить минимум из столбца базы данных SQLite? Android эмулятор висит при запуске? Как решить эту проблему «Содержимое адаптера изменилось, но ListView не получил уведомление»? Как я могу обновить версию APK, которую я сам не создал

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

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

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

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

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

Публичный статический окончательный Matrix.ScaleToFit CENTER

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

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

 android:scaleType="fitCenter" 

Мы можем использовать свойство 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-атрибут для этого …

андроид: scaleType = "fitCenter"