Potrzebuję zmienić rozmiar obrazu, aby pasował do ekranu, zachował ten sam współczynnik proporcji. Następujące warunki przytrzymanie:Zmiana rozmiaru ImageView w celu dopasowania do proporcji obrazu
- Obrazy są stałą szerokość (rozmiar od szerokości ekranu)
- Obrazy są pobierane z Internetu, to znaczy wielkość można określić dopiero później stosunek
- obrazu dla każdego obrazu będzie różnią się; niektóre są wysokie, niektóre są kwadratowe, niektóre są płaskie
- ImageView za wysokość musi się zmienić, albo większy lub mniejszy w zależności od współczynnika kształtu
- Excess wysokości jest przycięty, nie może mieć dużo pustej przestrzeni jak to jest domyślnie.
Na przykład mały obraz o wymiarach 50 x 50 na ekranie o szerokości 400 pikseli może przeskalować obraz do rozmiaru 400 x 400 pikseli. Obraz 800x200 będzie skalowany do rozmiaru 400 x 100.
Przyjrzałem się większości innych wątków, a wiele proponowanych rozwiązań, takich jak zwykłe zmienianie adjustViewBounds
i scaleType
, skaluje tylko obraz w dół i nie skaluje go.
+1, ładne i proste, tylko bym ją chronić przeciwko 'getIntrinsicWidth' będącemu 0 (zawiesi próbę dzielenia przez to) –
adjustViewBounds powinno być również wykonane w AspectRatioImageView http://developer.android.com/reference/android/widget/ImageView.html#setAdjustViewBounds%28boolean%29 – Nepster