# 20 Image Button für jede Auflösung positionieren



## Maresuke94 (2. Feb 2014)

Hallo User,
Ich weiß es ist eine ganz dumme Frage für alle jene, die Wissen wie es geht. Mein Problem ist jedoch das ich es nicht hin bekomme. Ich will 20 ImageButton auf dem Display Positionieren das sie alle gleich viel Platz von einander haben, das bekomme ich auch hin nur hab ich das Problem das sie nicht für jede Auflösung gleich Positioniert sind. Wenn ich eine andere Auflösung zum testen verwende, passen die Einstellungen nicht mehr. Habe die Button 4x5 Positioniert, also 4 in der Breite und 5 in der Höhe. Kann mir einer erklären wie ich das Problem löse ? 

```
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/backgroundfinal"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <ImageButton
            android:id="@+id/IBBatterie"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="20dp"
            android:background="@drawable/batterieicon" />

        <ImageButton
            android:id="@+id/IBTaschenlampe"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="20dp"
            android:background="@drawable/lampeicon" />

        <ImageButton
            android:id="@+id/IBDrei"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="20dp"
            android:background="@drawable/smapleicon" />

        <ImageButton
            android:id="@+id/IBVier"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="20dp"
            android:background="@drawable/smapleicon" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        >
        
        <ImageButton
            android:id="@+id/IBFuenf"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="20dp"
            android:background="@drawable/smapleicon" />

        <ImageButton
            android:id="@+id/IBSechs"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="20dp"
            android:background="@drawable/smapleicon" />

        <ImageButton
            android:id="@+id/IBSieben"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="20dp"
            android:src="@drawable/smapleicon" />

        <ImageButton
            android:id="@+id/IBAcht"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="20dp"
            android:src="@drawable/smapleicon" />
        
    </LinearLayout>
    
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        >
        
        <ImageButton
            android:id="@+id/9"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="20dp"
            android:background="@drawable/smapleicon" />

        <ImageButton
            android:id="@+id/10"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="20dp"
            android:background="@drawable/smapleicon" />

        <ImageButton
            android:id="@+id/11"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="20dp"
            android:src="@drawable/smapleicon" />

        <ImageButton
            android:id="@+id/12"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="20dp"
            android:src="@drawable/smapleicon" />
        
    </LinearLayout>
    
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        >
        
        <ImageButton
            android:id="@+id/13"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="20dp"
            android:background="@drawable/smapleicon" />

        <ImageButton
            android:id="@+id/14"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="20dp"
            android:background="@drawable/smapleicon" />

        <ImageButton
            android:id="@+id/15"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="20dp"
            android:src="@drawable/smapleicon" />

        <ImageButton
            android:id="@+id/16"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="20dp"
            android:src="@drawable/smapleicon" />
        
    </LinearLayout>
    
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        >
        
        <ImageButton
            android:id="@+id/17"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="20dp"
            android:background="@drawable/smapleicon" />

        <ImageButton
            android:id="@+id/18"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="20dp"
            android:background="@drawable/smapleicon" />

        <ImageButton
            android:id="@+id/19"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="20dp"
            android:src="@drawable/smapleicon" />

        <ImageButton
            android:id="@+id/20"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="20dp"
            android:src="@drawable/smapleicon" />
        
    </LinearLayout>

</LinearLayout>
```

Würde mich echt freuen wenn mir einer hilft, und wer dumme Kommentare machen will bitte woanders 
danke


----------



## MF (2. Feb 2014)

Hallo,

Du kannst (solltest) verschiedene Layout-XMLs für verschiedene Bildschirmgrößen definieren. 
(Das ist ein bißschen wie langweilige Hausarbeit - aber halt erfoderlich  )
Gegebenenfalls musst Du auch Deine Grafiken in verschiedenen Größen ablegen damit es gut aussieht.

Hast Du das mal gelesen (?)  - In den API Guides ist das ganz gut beschrieben:
Supporting Multiple Screens | Android Developers

Schau mal hier: 
Grid View | Android Developers
Vielleicht ist die Grid View auch die elegantere Lösung für Deine Bilder.
(Deine XML-Datei wird dadurch kleiner und übersichtlicher - Du musst dann aber einen Imagadapter einbauen - der kann dafür dann aber auch scrollen)

Hoffe ein wenig geholfen zu haben.

Viele Grüße
MF


----------



## Maresuke94 (2. Feb 2014)

Vielen dank,
Hat mir geholfen scheinbar weiß ich jetzt wie ich das mache, leider bekomme ich jetzt schon Kopfschmerzen wenn ich nur daran denke wie nervig das sein wird, ist halt ziemlich eintönig aber kann man nicht ändern, ohne Fleiß, kein Preis ^^
Würde das Speichern der Images in der richtigen Größe wohl reichen, um den Support aller Displays zu garantieren. Schließlich schließt das dann doch nur die größen:
small-Bildschirme:    mind. 426 x 320 dp
normal-Bildschirme: mind. 470 x 320 dp
large-Bildschirme:     mind. 640 x 480 dp
xlarge-Bildschirme:   mind. 960 x 720 dp
ein, aber es gibt doch noch ein paar mehr unterschiedliche ?


----------



## dzim (2. Feb 2014)

Es stimmt schon: Man kommt manchmal um die langweilige "Hausarbeit" nicht herum. Aber nur weil es mir gerade in den Sinn kam, kannst du ja mal versuchen, nicht "statische" Layouts zu verwenden, sondern mit "layout_weight"s zu arbeiten. Mich bringt das zwar manchmal an den Rand des Wahnsinns, weil mitunter irgend ein kleiner Parameter nie so recht hinhauen will, aber zumindest ist es ein dynamischeres Layout. Was dich natürlich nicht von dpi-abhängigen Images selbst befreit...


----------

