Mam obraz, który jest mniejszy niż kontener, w którym chciałbym go zmieścić. Chciałbym rozciągnąć obraz, zachowując jego proporcje, do jego największej możliwej wielkości.Jak zrobić obraz tak duży, jak to możliwe, zachowując proporcje obrazu
Aby zilustrować problem:
<ImageView android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/thumbnail"
android:scaleType="fitXY"
android:adjustViewBounds="true"/>
ImageView
powyżej byłby rozciągnięty do wypełnienia szerokości pojemnika. Zawarte w nim @drawable
będzie również rozciągać się wzdłuż osi x, aby pasować do szerokości ImageView
, która jest idealna. Problem polega jednak na tym, że wymiar oznaczony jako wrap_content
, w tym przypadku wysokość, pozostaje tej samej wielkości co początkowa wysokość @drawable
.
Czytałem dokumentację dotyczącą ScaleType here i nie może znaleźć tam odpowiedź.
Poniższy rysunek opisano powyżej kod:
Current behaviour Desired Behaviour
Edycja
ImageView
podane scaleType="fitCenter"
będzie dokładnie rozwinąć/zmniejszyć @drawable
wewnątrz niego rośnie tak duże, jak to możliwe, gdy zachowujesz jego współczynnik proporcji.
Wymiary są zdefiniowane przed skalowaniem w jakikolwiek sposób @drawable
. Wymiary ImageView
nie są zmieniane przez skalowanie zawierającym @drawable
.
Dla mnie to jest powszechny problem, któremu nigdy nie udało się znaleźć czystego rozwiązania. Dodaj w tle 9-plaster dla ramki, a jeszcze gorzej, aby spróbować naprawić. Jestem pewien, że to jest coś, co trzeba zrobić programowo, ale będzie miło, jeśli ktoś ma na to rozwiązanie. – kcoppock
+1 dla w pełni opisanego pytania – Merlin