Какая разница между типами CENTER_INSIDE и FIT_CENTER?

Я не могу сказать разницу между ImageView.ScaleType.CENTER_INSIDE и ImageView.ScaleType.FIT_CENTER.

CENTER_INSIDE

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

FIT_CENTER

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

Может ли кто-нибудь осветить разницу между двумя?

Ответ 1

FIT_CENTER должен убедиться, что источник полностью помещается внутри контейнера, и будет горизонтальной или вертикальной осью.

CENTER_INSIDE собирается центрировать изображение внутри контейнера, вместо того, чтобы точно совместить ребра.

поэтому, если у вас квадратная коробка размером 10 "x 10" и изображение размером 8 "x8", CENTER_INSIDE будет находиться в середине окна с 2 "между исходным и целевым контейнерами.

С помощью FIT_CENTER это же изображение из приведенного выше примера будет соответствовать всему контейнеру, поскольку стороны равны, и одна ось будет соответствовать назначению. С FIT_CENTER, если у вас есть поле размером 5 "x 10" и изображение размером 5 "x 7", изображение будет пропорционально масштабировано, поэтому одна из осей будет соответствовать, но все равно будет центрировать изображение внутри место назначения.

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

Надежда, которая немного разъясняет

Ответ 2

Здесь представлена ​​графическая иллюстрация разницы между CENTER_INSIDE и FIT_CENTER.


Используемое изображение (100 × 100):

Android_Robot_100.png


Маленький вид изображения (75 × 50):

CENTER_INSIDE:

CENTER_INSIDE for small image view

FIT_CENTER:

FIT_CENTER for small image view

Оба CENTER_INSIDE и FIT_CENTER уменьшают изображение.


Вид большого изображения (300 × 200):

CENTER_INSIDE:

CENTER_INSIDE for large image view

FIT_CENTER:

FIT_CENTER for large image view

CENTER_INSIDE не увеличивает изображение, FIT_CENTER делает.


Робот Android воспроизводится или модифицируется с работы, созданной и совместно используемой Google, и используется в соответствии с условиями, описанными в лицензии на лицензирование Creative Commons 3.0.

Ответ 3

Они одинаковы, если изображение больше контейнера. Если изображение меньше, то контейнер CENTER_INSIDE НЕ будет масштабировать изображение, пока FIT_CENTER будет.