Какая разница между типами 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 будет.