Was ist der Unterschied zwischen den Skalentypen CENTER_INSIDE und FIT_CENTER?

Lesezeit: 3 Minuten

Benutzer-Avatar
Keith

Ich kann den Unterschied zwischen nicht erkennen ImageView.ScaleType.CENTER_INSIDE und ImageView.ScaleType.FIT_CENTER.

CENTER_INSIDE

Skalieren Sie das Bild gleichmäßig (behalten Sie das Seitenverhältnis des Bildes bei), sodass beide Dimensionen (Breite und Höhe) des Bildes gleich oder kleiner als die entsprechende Dimension der Ansicht (minus Padding) sind.

FIT_CENTER

Berechnen Sie eine Skalierung, die das ursprüngliche Seitenverhältnis von src beibehält, aber auch sicherstellt, dass src vollständig in dst passt. Mindestens eine Achse (X oder Y) passt genau. Das Ergebnis wird innerhalb von dst zentriert.

Kann jemand den Unterschied zwischen den beiden beleuchten?

  • Sie sind identisch, mit der Ausnahme, dass CENTER_INSIDE das Bild NICHT erweitert, wenn das Feld tatsächlich GRÖSSER als das Bild ist

    – Fett

    30. März 2021 um 12:40 Uhr

  • @Fattie Danke! Macht Sinn, wenn man es weiß.

    – Joshua Pinter

    29. April 2021 um 15:37 Uhr

Benutzer-Avatar
Stich

Hier ist eine grafische Darstellung des Unterschieds zwischen CENTER_INSIDE und FIT_CENTER.


Verwendetes Bild (100 × 100):

Android_Robot_100.png


Kleinbildansicht (75 × 50):

MITTE_INNEN:

CENTER_INSIDE für kleine Bildansicht

FIT_CENTER:

FIT_CENTER für kleine Bildansicht

Beide CENTER_INSIDE und FIT_CENTER das Bild verkleinern.


Große Bildansicht (300 × 200):

MITTE_INNEN:

CENTER_INSIDE für große Bildansicht

FIT_CENTER:

FIT_CENTER für große Bildansicht

CENTER_INSIDE vergrößert das Bild nicht, FIT_CENTER tut.


Der Android-Roboter wird aus einer von Google erstellten und freigegebenen Arbeit reproduziert oder modifiziert und gemäß den Bedingungen verwendet, die in der Creative Commons 3.0 Attribution License beschrieben sind.

FIT_CENTER stellt sicher, dass die Quelle vollständig in den Container passt und entweder die horizontale oder die vertikale Achse exakt ist.

CENTER_INSIDE wird das Bild innerhalb des Containers zentrieren, anstatt dass die Kanten genau übereinstimmen.

Wenn Sie also eine quadratische Box von 10 x 10 Zoll und ein Bild von 8 x 8 Zoll hätten, wäre CENTER_INSIDE direkt in der Mitte der Box mit 2 Zoll zwischen dem Quell- und dem Zielcontainer.

Mit FIT_CENTER würde dasselbe Bild aus dem obigen Beispiel auf den gesamten Container passen, da die Seiten gleich sind und eine Achse mit dem Ziel übereinstimmt. Wenn Sie mit FIT_CENTER eine Box von 5 “x 10” und ein Bild von 5 “x 7” hätten, würde das Bild proportional skaliert, sodass eine der Achsen passen würde, aber das Bild immer noch innerhalb der zentrieren würde Ziel.

Sie sind ähnlich, aber eines ist so gestaltet, dass die Quelle das Ziel so weit wie möglich ausfüllt, während das andere das Bild nur innerhalb des Ziels zentriert.

Hoffe das klärt ein wenig auf

  • Beachten Sie, dass center/centerInside, usw. zentrieren das Bild nicht wirklich, soweit ich das beurteilen kann. Zumindest in dem Fall, wenn das Bild kleiner als die Ansicht ist. Ich könnte falsch liegen.

    – Timmm

    21. November 2012 um 17:39 Uhr

  • es klingt, dass FIT_CENTER (fast) immer günstiger ist.

    – Cheng-Yang

    5. März 2013 um 21:48 Uhr

  • Das macht immer noch keinen Sinn, weil FIT_CENTER besagt, dass At least one axis (X or Y) will fit exactly. Bedeutet das nicht, dass beide dasselbe tun?

    – Christoph Perry

    22. März 2013 um 17:20 Uhr

  • Grundsätzlich ist der Dokumentation nicht klar, dass CENTER_INSIDE nicht nach oben skaliert (nur nach unten).

    – Ken

    22. Mai 2014 um 0:28 Uhr

  • @Ken In diesem Fall wird das Szenario ignoriert, in dem das Bild größer als das Ansichtsfeld ist CENTER_INSIDE verkleinert es und wird dadurch auch unnötig kompliziert. Die anderen Antworten erklären dies richtig und viel prägnanter.

    – Livven

    30. März 2016 um 22:05 Uhr

Sie sind gleich, wenn das Bild größer als der Container ist. Wenn das Bild kleiner ist, skaliert der Container CENTER_INSIDE das Bild NICHT, während FIT_CENTER dies tut.

1344120cookie-checkWas ist der Unterschied zwischen den Skalentypen CENTER_INSIDE und FIT_CENTER?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy