Nie potrafię odróżnić ImageView.ScaleType.CENTER_INSIDE
i ImageView.ScaleType.FIT_CENTER
.
CENTER_INSIDE
Skaluj obraz równomiernie (zachowaj proporcje obrazu), tak aby oba wymiary (szerokość i wysokość) obrazu były równe lub mniejsze niż odpowiadający wymiar widoku (bez wypełnienia).
FIT_CENTER
Oblicz skalę, która zachowa oryginalny współczynnik proporcji src, ale zapewni również, że src zmieści się całkowicie w dst. Przynajmniej jedna oś (X lub Y) będzie dokładnie pasować. Wynik jest wyśrodkowany wewnątrz dst.
Czy ktoś może wyjaśnić różnicę między nimi?
center
/centerInside
itp. Nie wyśrodkowują obrazu, o ile wiem. Przynajmniej w przypadku, gdy obraz jest mniejszy niż widok. Mogę się mylić.FIT_CENTER
stwierdzaAt least one axis (X or Y) will fit exactly
. Czy to nie oznacza, że obaj robią to samo?CENTER_INSIDE
zmniejsza go, a tym samym staje się niepotrzebnie skomplikowany. Inne odpowiedzi wyjaśniają to poprawnie i znacznie bardziej zwięźle.Oto graficzna ilustracja różnicy między
CENTER_INSIDE
iFIT_CENTER
.Użyty obraz (100 × 100):
Widok małego zdjęcia (75 × 50):
CENTER_INSIDE:
FIT_CENTER:
Oba
CENTER_INSIDE
iFIT_CENTER
zmniejsz obraz.Widok dużego obrazu (300 × 200):
CENTER_INSIDE:
FIT_CENTER:
CENTER_INSIDE
nie powiększa obrazuFIT_CENTER
.Robot Android jest powielany lub modyfikowany na podstawie pracy stworzonej i udostępnionej przez Google i używany zgodnie z warunkami opisanymi w licencji Creative Commons 3.0 Attribution License.
źródło
Są takie same, jeśli obraz jest większy niż kontener. Jeśli obraz jest mniejszy, kontener CENTER_INSIDE NIE przeskaluje obrazu w górę, podczas gdy FIT_CENTER tak.
źródło
to samo, jeśli obraz jest większy niż kontener. Jeśli obraz jest mniejszy, kontener CENTER_INSIDE NIE przeskaluje obrazu w górę, podczas gdy FIT_CENTER tak.
źródło