2013-03-03 14 views
6

Ich habe ein horizontales lineares Layout, das 3 Bildansichten enthält. Jede Bildansicht enthält das gleiche Bild mit 200x200 Pixel. Hier ist mein Layout xml:LinearLayout ImageView Größe aller Bildbreiten anpassen

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    tools:context=".MainActivity" > 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" > 

     <ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/image200" /> 

     <ImageView 
      android:id="@+id/imageView2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/image200" /> 

     <ImageView 
      android:id="@+id/imageView3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/image200" /> 

    </LinearLayout> 

</RelativeLayout> 

Und hier ist, wie es aussieht:

linear layout test screenshot

Beachten Sie, wie das dritte Bild von links der Größe verändert wird Ich gehe davon aus, da nicht genügend Immobilien zu enthalten 3x 200 Pixel breite Bilder.

Was ich eher passieren würde ist, anstatt nur das letzte Bild zu schrumpfen, alle drei Bilder werden gleichmäßig in der Größe geändert, so dass sie alle über den Bildschirm passen. Wie richte ich mein Layout so ein, dass es alle drei Bilder gleichmäßig anpasst?

Danke

UPDATE - nach ist meine Einstellungen hier ändern, was Dinge wie folgt aussehen:

updates

Beachten Sie, dass die Grenze um die Bildansicht noch 200 px hoch ist. Warum passiert dies?

Antwort

11

Set Breite und Höhe match_parent für imageviews und layout_weight = 1 gesetzt für alle Bildansichten. Setzen Sie auch Attribut android:scaleType="fitXY"

+0

ah das hat funktioniert danke! –

+0

Android: scaleType = "fitXY" ist nutzlos, da die layoutHeight im Wrap-Content-Modus ist – Guian

+0

es funktionierte wie ich oben erwähnt, aber das Problem ist, war die Skalierung der Breite der Bilder, aber nicht die Höhe so das Bildseitenverhältnis alle durcheinander gebracht . Durch das Entfernen von fitXY wird die Größe beider Dimensionen geändert. Vielen Dank! –

1

Ihre drei Bilder mit einer Breite von 0DP machen

und fügen Sie eine layout_weight von 1

;)

<ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:src="@drawable/image200" /> 
1

@JanTacci In Bezug auf Ihre Follow-up-Frage "Beachten Sie jedoch, dass obwohl das Bild geschrumpft ist die tatsächliche Layout-Höhe immer noch 200 px. Warum passiert das?"

Ich hatte gerade das gleiche Problem und reparierte es zu jedem Image dieser Eigenschaft durch Zusatz:

android:adjustViewBounds="true" 
3

Die perfekt für mich gearbeitet:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <ImageView 
     android:adjustViewBounds="true" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1"/> 

    <ImageView 
     android:adjustViewBounds="true" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1"/> 

    <ImageView 
     android:adjustViewBounds="true" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1"/> 

</LinearLayout> 

Layoutbreite, wenn das Layout Breite 0DP gesetzt, ist, was ins Bild kam. Und hier ist die Layoutbreite des LinearLayouts übergeordnet. Es wird also die gesamte Breite einnehmen, und je nach Layoutbreite der Bilder nehmen sie Platz im Verhältnis des Gewichts.

+0

Bitte erläutern Sie Ihre Antwort! – Mazz

+1

@Mazz: eine kurze Erklärung hinzugefügt. Lassen Sie mich wissen, wenn etwas noch verwirrend ist. – blackjack

Verwandte Themen