2010-05-16 8 views
8

Ich versuche, vier gleich große Quadrate auf einem Android-Bildschirm auszurichten & Ich habe nun versucht, etwas wie eine Million verschiedenen Ansätze fühlt, doch keiner von ihnen scheint :(zu arbeitenAndroid. Die Ausrichtung von vier Quadraten

Was ich im Moment habe, ist folgende:.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:id="@+id/MasterLayout" android:layout_width="wrap_content"  android:layout_height="fill_parent" android:background="#FFFFFF"> 
<TableLayout android:layout_width="fill_parent" android:id="@+id/mainlay" android:background="#444444" android:layout_weight="0.2" android:layout_height="wrap_content" android:padding="0dip"> 
    <TableRow android:layout_weight="1" android:background="#BBBBBB" android:padding="0dip"> 
     <ImageView android:id="@+id/ImageView1" android:layout_marginLeft="10px" android:layout_weight="1" android:layout_marginRight="5px" android:layout_height="wrap_content" android:layout_width="wrap_content" android:scaleType="centerInside" android:src="@drawable/bigbox_new"></ImageView> 
     <ImageView android:id="@+id/ImageView2" android:layout_marginLeft="5px" android:layout_weight="1" android:layout_marginRight="10px" android:layout_height="wrap_content" android:layout_width="wrap_content" android:scaleType="centerInside" android:src="@drawable/bigbox_new"></ImageView> 
    </TableRow> 
    <TableRow android:layout_weight="1" android:padding="0dip"> 
     <ImageView android:id="@+id/ImageView3" android:layout_marginLeft="10px" android:layout_weight="1" android:layout_marginRight="5px" android:layout_height="wrap_content" android:layout_width="wrap_content" android:scaleType="centerInside" android:src="@drawable/bigbox_new"></ImageView> 
     <ImageView android:id="@+id/ImageView4" android:layout_marginLeft="5px" android:layout_weight="1" android:layout_marginRight="10px" android:layout_height="wrap_content" android:layout_width="wrap_content" android:scaleType="centerInside" android:src="@drawable/bigbox_new"></ImageView> 
    </TableRow> 
</TableLayout> 
</LinearLayout> 

Diese im Grunde die Arbeit macht jedoch eine enorme Polsterung jeder dieser vier Bilder oben hat und darunter Wie kann ich davon befreien. Oder muss ich einen anderen Layout-Typ verwenden?

Um mein Problem zu veranschaulichen, hier ist ein Bild. Auf der linken Seite ist, was ich habe, auf der rechten Seite ist, was ich brauche. Image

Vielen Dank!

Prost, Markus!

Antwort

3

Entfernen Sie layout_weight aus Ihrer TableRows und setzen Sie ihre layout_height auf wrap_content. Fügen Sie dann eine leere TableRow mit layout_height unter fill_parent hinzu.

+0

Danke! Dieser Trick mit dem fill_parent-Layout war genau das, wonach ich suchte. – metter

0

Versuchen Sie, den scaleType als centerCrop zu verwenden, wenn die Bildgröße größer ist, dann wird dies den Trick für Sie tun. Aber das ist nicht der beste Weg, es zu tun, besser wäre es, die Bildressourcen zu ändern.

HTH!

+0

Hallo Karan. Danke für Ihren Tipp. Es scheint jedoch, dass meine Beschreibung nicht zu klar war (und vor allem das Bild); Ich brauche die Quadrate, um Quadrate zu bleiben. Sie sollten so groß wie möglich in einem 2x2 Raster sein. Der verbleibende Platz auf dem Bildschirm darf jedoch nicht zwischen den vier Quadraten liegen, sondern unterhalb des Bildschirms auf dem Bildschirm. Haben Sie einen Zeiger für mich? Vielen Dank. – metter

0

Versuchen Sie, die ImageView-Höhe auf fill_parent zu setzen, ich denke, das sollte ausreichen. Wie auch immer, es würde helfen, wenn Ihre XML-Eigenschaften in Zeilen aufgeteilt wären, es wäre schwer für den Rest von uns, eine einzelne Zeile von Eigenschaften zu lesen.

Warum legen Sie ein TableLayout auch in ein LinearLayout? Wenn Sie nicht mehr Elemente in diesem Linear haben, können Sie es loswerden.

+0

Leider hatte dies nicht den gewünschten Effekt. Danke anayway für deine Zeit! @ Code; Du hast recht. Ich habe es jetzt auf mehrere Zeilen umstrukturiert. – metter

Verwandte Themen