Pytanie Jak zrobić mój ImageView stały rozmiar, niezależnie od wielkości bitmapy


Dlatego ładuję obrazy z usługi internetowej, ale rozmiar zdjęć jest czasami mniejszy lub większy niż w przypadku innych obrazów, a wizualizacja wygląda głupio, gdy umieszczam je w widoku listy w systemie Android. Chciałbym zmienić rozmiar mojego ImageView tak, aby pokazywał tylko część obrazu, jeśli jest większa niż zadana ilość. Próbowałem wszystkiego, co mogę myśleć o ustawieniu setMaxWidth / setMaxHeight, ustawiając typ skalowania na centerCrop, używając ClipableDrawable owijając moje BitmapDrawable, ustawienie używając Drawable.setBounds (). Próbowałem ustawić w XML i programowo, ale nie działa. Jestem bardzo zaskoczony, że ustawienie max width / height nic nie dało. Poniżej znajduje się XML, w którym używam definicji ImageView w moim pliku układu:

    <ImageView android:id="@+id/recipeImage"
           android:maxHeight="64px"
           android:maxWidth="64px"
           android:scaleType="centerCrop"
           android:layout_width="wrap_content"
           android:layout_height="fill_parent"
           android:layout_alignParentTop="true"
           android:layout_alignParentBottom="true"
           android:layout_marginRight="6dip"/>

Ale nic nie zadziałało.


34
2017-09-23 19:21


pochodzenie




Odpowiedzi:


Po prostu usuń atrybuty maxHeight i maxWidth i odpowiednio wprowadź jednostki w layout_width i layout_height. Ale nie używaj jednostki "px" - użyj "dp", ponieważ są one niezależne od urządzenia.


42
2017-09-23 19:47



Mógłbym przysiąc, że próbowałem tego. Dzięki za pomoc. - chubbsondubs
Co powiesz na minHeight i minWidth? - Yousha Aleayoub


Spowoduje to dopasowanie obrazu do określonej wysokości i szerokości, niezależnie od rozmiaru obrazu.

<ImageView
        android:id="@+id/image5"
        android:layout_width="300dp"
        android:layout_height="200dp"
        android:src="@drawable/image_1"
        android:scaleType="fitXY"/>

0
2018-06-29 11:39