Ich habe ein einfaches lineares Layout für ListView-Zelle verwendet, und es hat ein Bildansicht. Das Bild wird aus dem Internet heruntergeladen, so dass die Größe unterschiedliche Größen haben kann.Wie ImageView Höhe dynamisch ändern
Allerdings möchte ich die Breite von Bildansicht zu Fill_parent, die festgelegt ist, festlegen und dynamisch die Bildhöhe zur Laufzeit ändern. Regeln zum Einstellen der Bildhöhe: Wenn das h/w-Verhältnis des Bildes mehr als 1 beträgt, muss das ImageView-Quadrat entsprechend der Höhe an die Breite angepasst werden.
Wenn das h/w-Verhältnis des Bilds kleiner als 1 ist, wird es proportional skaliert. Erwartete zwei Proben wie unten.
Die erste ist h/w < 1, während die zweite 'Katze' h/w> 1 ist.
Vielen Dank für Ihre Zeit.
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical"
android:padding="10dp" >
<TextView
android:id="@+id/postTitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="2"
android:textColor="@color/black"
android:textSize="18sp"
android:textStyle="bold" />
<ImageView
android:id="@+id/postImg"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:scaleType="centerCrop"
android:src="@drawable/dummy_image"
android:contentDescription="@string/postImage" />
</LinearLayout>
Hat es für Sie funktioniert? –
nein, nicht funktionieren. Trotzdem danke –
was passiert, weil diese Einstellungen das Bild so skalieren, dass die Breite statisch ist und die Höhe entsprechend dem Seitenverhältnis des Bildes gezogen wird. –