@Michele: Ich vermute Dir fehlen in diesem Zusammenhang noch ein paar Infos. Ich versuche sie mal stichwortartig zusammenzufassen:
* Normalerweise reicht ein Layout/Drawable für alle Auflösungen wenn Du mit den Anpassungen die das System dann automatisch vornimmt zufrieden bist. Die Ordner layout/drawable bleiben dann die einzigen ihrer Art.
* Gefällt Dir die Darstellung eines Layouts oder eines Drawables für eine bestimmte Größe nicht dann legst Du für genau diese Größe den weiteren, speziellen Ordner an (z.B. layout-land für ein Landscape-Layout oder drawable-xhdpi für ein Tablet-Image). Du musst nicht alle Spezial Ordner anlegen - nur die in denen auch angepasste Drawables/Layouts vorkommen.
* In diesem speziellen Ordner müssen dann nicht alle Dateien des Urprungsordners (layout/drawable) vorkommen. Nur die Layouts/Drawables die Du geändert wissen willst legst Du da hinein. Die Dateien erhalten dabei den selben Namen wie die Ursprungsdateien in den Ursprungsordnern. Der Inhalt sollte sich aber schon unterscheiden.
* In Deinen Programmen musst Du dazu keine Änderungen vornehmen denn das System sucht sich selbst die passenden Dateien zusammen.
Ich bin jetzt nicht der Design-Kenner. Wenn ich ein Schwein malen soll kommt dabei eine Kiste raus. Deshalb nur ein simples Beispiel:
In zwei meiner Apps gibt es eine WebView mit einer horizontalen Auswahl Gallery darüber. Hierfür würde normalerweise ein einzelnes Layout reichen. Ich war aber mit der von Android automatisch vorgenommenen Skalierung nicht zufrieden. Deshalb habe ich nur für dieses eine Layout den layout-land Ordner angelegt und eine modifizierte Version der Datei dahinein gelegt.
Datei: anzeige.xml im Ordner layout:
1<LinearLayout
2 xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_height="fill_parent"
4 android:layout_width="fill_parent"
5 android:orientation="vertical" >
6
7 <Gallery
8 android:id="@+id/gallery"
9 android:layout_height="0dip"
10 android:layout_weight="1"
11 android:layout_width="fill_parent"
12 android:spacing="2dip" />
13
14 <View
15 android:background="@android:color/white"
16 android:layout_height="1dip"
17 android:layout_marginTop="2dip"
18 android:layout_width="fill_parent" />
19
20 <WebView
21 android:id="@+id/webview"
22 android:layout_height="0dip"
23 android:layout_marginTop="2dip"
24 android:layout_weight="6"
25 android:layout_width="fill_parent" />
26</LinearLayout>
Datei: anzeige.xml im Ordner layout-land:
1<LinearLayout
2 xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_height="fill_parent"
4 android:layout_width="fill_parent"
5 android:orientation="vertical" >
6
7 <Gallery
8 android:id="@+id/gallery"
9 android:layout_height="0dip"
10 android:layout_weight="1"
11 android:layout_width="fill_parent"
12 android:spacing="2dip" />
13
14 <View
15 android:background="@android:color/white"
16 android:layout_height="1dip"
17 android:layout_marginTop="2dip"
18 android:layout_width="fill_parent" />
19
20 <WebView
21 android:id="@+id/webview"
22 android:layout_height="0dip"
23 android:layout_marginTop="2dip"
24 android:layout_weight="4"
25 android:layout_width="fill_parent" />
26</LinearLayout>
Wie Du sehen kannst sind das nur minimale Anpassungen. Durch den layout_weight in der vertikalen Ausrichtung passe ich die Größe der Gallery minimal an.
Um das mal auf Deinen konkreten Fall anzuwenden würde ich, wie hier schon vorgeschlagen wurde, auf LinearLayout wechseln und mit layout_weight die Gewichtung der Buttons untereinander festlegen. Gib zum Beispiel jedem Button in einer horizontalen Reihe mal den linear_layout="1", lass in dem Fall mal Größenangaben wie dip weg.
— geändert am 02.07.2012, 08:49:48
Meine Apps: Tankbuch Mobil Pro | GaCoMo for Garmin Connect | Streaming Repeater | Ultraviewer
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.