setscaletype centerinside adjustviewbounds adjust android imageview android-imageview scaling scaletype

android - centerinside - ¿Cuál es la diferencia entre los tipos de escala CENTER_INSIDE y FIT_CENTER?



android setscaletype (3)

No puedo decir la diferencia entre ImageView.ScaleType.CENTER_INSIDE e ImageView.ScaleType.FIT_CENTER .

CENTER_INSIDE

Escale la imagen de manera uniforme (mantenga la relación de aspecto de la imagen) para que ambas dimensiones (ancho y alto) de la imagen sean iguales o menores que la dimensión correspondiente de la vista (menos relleno).

FIT_CENTER

Calcule una escala que mantendrá la relación de aspecto src original, pero también asegurará que src se ajuste completamente dentro de dst. Al menos un eje (X o Y) se ajustará exactamente. El resultado se centra en dst.

¿Alguien puede iluminar la diferencia entre los dos?


Aquí hay una ilustración gráfica de la diferencia entre CENTER_INSIDE y FIT_CENTER .

Imagen utilizada (100 × 100):

Vista de imagen pequeña (75 × 50):

CENTER_INSIDE:

FIT_CENTER:

Tanto CENTER_INSIDE como FIT_CENTER reducen la imagen.

Vista de imagen grande (300 × 200):

CENTER_INSIDE:

FIT_CENTER:

CENTER_INSIDE no amplía la imagen, FIT_CENTER sí.

El robot Android se reproduce o modifica a partir del trabajo creado y compartido por Google y se utiliza de acuerdo con los términos descritos en la Licencia de Atribución Creative Commons 3.0.


FIT_CENTER se asegurará de que la fuente se ajuste completamente al contenedor y que el eje horizontal o vertical sea exacto.

CENTER_INSIDE va ​​a centrar la imagen dentro del contenedor, en lugar de hacer que los bordes coincidan exactamente.

por lo tanto, si tuviera una caja cuadrada de 10 "x 10" y una imagen de 8 "x8", CENTER_INSIDE estaría directamente en el medio de la caja con 2 "entre la fuente y el contenedor de destino.

Con FIT_CENTER, esa misma imagen del ejemplo anterior, cabría en todo el contenedor, porque los lados son iguales y un eje coincidirá con el destino. Con FIT_CENTER, si tuviera una caja de 5 "x 10" y una imagen de 5 "x 7", la imagen se escalaría proporcionalmente, de modo que encajaría uno de los ejes, pero aún así centraría la imagen dentro del destino.

Son similares, pero uno está hecho para que la fuente llene el destino tanto como sea posible, mientras que el otro solo centra la imagen dentro del destino.

Espero que aclare un poco


Son lo mismo si la imagen es más grande que el contenedor. Si la imagen es más pequeña, el contenedor CENTER_INSIDE NO escalará la imagen mientras FIT_CENTER lo hará.