Ich habe eine ImageView
und habe seine layout_height
auf "100dp" und seine layout_width auf "wrap_content" gesetzt.ImageView adjustViewBounds funktioniert nicht mit Relative Layout
Der verwendete Zeichensatz hat größere tatsächliche Abmessungen, die 130 dpi (Breite) x 215 dpi (Höhe) betragen.
Wenn die ImageView
innerhalb eines LinearLayout
platziert wird, wenn ich adjustViewBounds
auf true gesetzt, es wird eine Breite, die entsprechend dem Seitenverhältnis des ziehbaren und dem layout_width gemessen wird.
Allerdings wird die ImageView
, wenn sie in einem platziert wird, die gleiche Breite wie das Zeichen (130dp), unabhängig von den Einstellungen von adjustViewBounds.
In beiden Fällen wird das Bild ohne Verzerrung korrekt wiedergegeben, die Grenzen des ImageView sind jedoch unterschiedlich.
Die RelativeLayout:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/background_light">
<ImageView
android:layout_width="wrap_content"
android:layout_height="100dp"
android:adjustViewBounds="true"
android:src="@drawable/phone_orange"
android:contentDescription="@null" />
</RelativeLayout>
Die Linearlayout:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/background_light"
android:orientation="vertical" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="100dp"
android:adjustViewBounds="true"
android:contentDescription="@null"
android:src="@drawable/phone_orange" />
</LinearLayout>
Warum die ImageView
Maßnahmen unterschiedlich in diesen 2 Szenarien? Gibt es eine Möglichkeit, die ImageView
Verhalten immer wie im Fall LinearLayout verhalten (wickeln Sie es mit einem LinearLayout funktioniert, aber es ist keine saubere Lösung)?
Das Bild match_parent dies verschwindet vollständig mit. – Petrakeas
@Petrakeas Ich aktualisierte Antwort, ich versuchte es in meiner App, es funktioniert gut –
'Android: maxHeight' scheint den Trick zu tun! Aber warum wird es benötigt? Innerhalb LinearLayout funktioniert alles wie erwartet. Ist das Verhalten von RelativeLayout korrekt? – Petrakeas