2012-04-12 17 views
18

Rzeczy wyglądały na dość proste, ale ostatecznie wynik nie jest dobry. Mam obraz, który ma szerokość większą niż szerokość ekranu. Muszę więc skalować to w moim widoku obrazu. Przejrzałem opcje ScaleType i wypróbowałem je wszystkie, ale żadna nie jest w porządku. Pierwszy "center" wyświetla tylko obraz wyśrodkowany na układzie, bez skalowania. "fitCenter" skaluje obraz, aby zmieścił się w moim układzie, ale ma poważną wadę: wysokość elementu pozostaje taka, jak gdyby miał duży obraz w nim. Spójrz na drugi ekran w załączonym obrazie. Jak mogę wymusić element listy, aby zmniejszyć jego wysokość, aby zawinąć zarówno tekst, jak i obraz?Android ImageView ScaleRodzaje i wysokość elementu

enter image description here

+0

zrobiłeś to do pracy? – Shubhayu

Odpowiedz

45

Użyj scaletype który wydaje się najlepiej do Ciebie (chyba lubisz to, co widać z fitCenter). Dodatkowa rzeczą, którą musisz zrobić, to

android: adjustViewBounds = "true"

w ImageView.

lub możesz iść z FitXY, ale czasami wynik nie jest dokładnie to, co chcesz.

+0

Tak, to była brakująca właściwość. Działa dobrze z adjustViewBounds i fitCenter – Alin

+0

Mam obraz 1000 * 800, ale nie mogę uzyskać pełnego ImageView za pomocą żadnej z tych właściwości .. jeśli jakakolwiek kombinacja z nim leży. Proszę mi pomóc –

+0

Potrzebuję więcej informacji, np. czy obraz jest w układzie, który jest mniejszy niż rozmiar obrazu i jak jest ustawiony obraz. – Shubhayu

2

można użyć FitXY? To działałoby, gdybyś znał rozmiar obszaru, w którym obraz był umieszczany. CentreInside może również działać, użyłem tego do skalowania obrazów, ale myślę, że to zależy, czy masz kontrolę nad rozmiarem ograniczającego elementu układu.

3

użycie android:scaleType="fitXY"

0

Musisz ustawić android: height = "wrap_content" na swoim zewnętrznym pojemniku lub ustawić wysokość statyczną TextBox i dać ImageView android: weight = "1", aby ImageView zajął miejsce w pojemniku.

Powiązane problemy