web-dev-qa-db-fra.com

Quelle est la différence entre les types d'échelle CENTER_INSIDE et FIT_CENTER?

Je ne peux pas faire la différence entre ImageView.ScaleType.CENTER_INSIDE et ImageView.ScaleType.FIT_CENTER.

CENTER_INSIDE

Redimensionnez l'image uniformément (conservez le rapport hauteur/largeur de l'image) de sorte que les deux dimensions (largeur et hauteur) de l'image soient égales ou inférieures à la dimension correspondante de la vue (moins le remplissage).

FIT_CENTER

Calculez une échelle qui conservera le rapport d’aspect d’origine src, mais garantira également que src s’intègre entièrement dans dst. Au moins un axe (X ou Y) conviendra parfaitement. Le résultat est centré à l'intérieur de dst.

Quelqu'un peut-il éclairer la différence entre les deux?

131
Keith

FIT_CENTER s'assurera que la source s'adapte complètement à l'intérieur du conteneur, et que l'axe horizontal ou vertical va être exact.

CENTER_INSIDE va ​​centrer l'image à l'intérieur du conteneur, plutôt que de faire correspondre les bords exactement.

ainsi, si vous aviez une boîte carrée de 10 x 10 po et une image de 8 x 8 po, le paramètre CENTER_INSIDE se trouverait directement au centre de la boîte, avec un espace de 2 po entre le conteneur source et le conteneur de destination.

Avec FIT_CENTER, la même image de l'exemple ci-dessus convient au conteneur entier, car les côtés sont égaux et qu'un axe correspond à la destination. Avec FIT_CENTER, si vous aviez une boîte de 5 "x 10" et une image de 5 "x 7", l’image serait mise à l’échelle proportionnelle, de sorte que l’un des axes s’ajusterait, mais resterait centré dans l’image. destination.

Ils sont similaires, mais l’un est conçu de manière à ce que la source remplisse le plus possible la destination, tandis que l’autre centre uniquement l’image dans la destination.

J'espère que ça clarifie un peu

135
BlackHatSamurai

Voici une illustration graphique de la différence entre CENTER_INSIDE et FIT_CENTER.


Image utilisée (100 × 100):

Android_Robot_100.png


Petite image (75 × 50):

CENTER_INSIDE:

CENTER_INSIDE for small image view

FIT_CENTER:

FIT_CENTER for small image view

Tous les deux CENTER_INSIDE et FIT_CENTER réduire l'image.


Image agrandie (300 × 200):

CENTER_INSIDE:

CENTER_INSIDE for large image view

FIT_CENTER:

FIT_CENTER for large image view

CENTER_INSIDE n’agrandit pas l’image, FIT_CENTER Est-ce que.


Le robot Android est reproduit ou modifié à partir d'un travail créé et partagé par Google et utilisé selon les conditions décrites dans la licence d'attribution Creative Commons 3.0.

228
Pang

Ils sont identiques si l'image est plus grande que le conteneur. Si l'image est plus petite, le conteneur CENTER_INSIDE n'échelonnera PAS l'image, mais FIT_CENTER le fera.

48
Zarokka