Layouts für verschiedene Geräte

  • Antworten:6
Basti Steer
  • Forum-Beiträge: 37

31.03.2014, 01:10:30 via Website

Hallo zusammen,
Ich habe derzeit zwei Probleme beim Erstellen bzw dem Umgang mit Layouts.

1. Screen mit Button:
So in etwa soll es aussehen:


Bei mir soll das ganze allerdings nur vier Buttons habe.

1<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 xmlns:tools="http://schemas.android.com/tools"
3 android:id="@+id/container"
4 android:layout_width="match_parent"
5 android:layout_height="match_parent"
6 android:orientation="horizontal"
7 tools:context="com.example.bikinifigur2.MainActivity"
8 tools:ignore="MergeRootFrame" >
9
10 <Button
11 android:id="@+id/button4"
12 android:layout_width="match_parent"
13 android:layout_height="80dp"
14 android:layout_alignParentBottom="true"
15 android:layout_centerHorizontal="true"
16 android:layout_marginBottom="15dp"
17 android:text="@string/information" />
18
19 <Button
20 android:id="@+id/button1"
21 android:layout_width="match_parent"
22 android:layout_height="150dp"
23 android:layout_above="@+id/button2"
24 android:layout_centerHorizontal="true"
25 android:text="@string/startbutton" />
26
27 <Button
28 android:id="@+id/button2"
29 android:layout_width="wrap_content"
30 android:layout_height="80dp"
31 android:layout_above="@+id/button4"
32 android:layout_alignParentLeft="true"
33 android:layout_toLeftOf="@+id/button3"
34 android:text="@string/uebungen" />
35
36 <Button
37 android:id="@+id/button3"
38 android:layout_width="180dp"
39 android:layout_height="80dp"
40 android:layout_above="@+id/button4"
41 android:layout_alignParentRight="true"
42 android:text="@string/einstellungen" />
43
44</RelativeLayout>

Das ist mein derzeitiger Code, Problem sind die dp-Angaben auf den verschiedenen Display-Größen. Wie kann ich das ganze am besten lösen?


2. Ich habe eine horizontale Scrollview eingefügt. In dieser füge ich Bilder ein, welche alle im drawable-xxhdpi Ordner liegen und die Größe 1080x1000 haben. Auf meinem HTC-One wird das ganze Jetzt perfekt auf einer Seite angezeigt, problematisch ist es auf größeren und kleineren Geräten. Ich habe schon mehrmals gegooglet und auch selbst verscuht die zu den anderen Ordner hinzuzufügen, habe aber wohl immer etwas falsch gemacht, da diese dann entweder viel zu groß oder zu klein angezeigt wurden.

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

31.03.2014, 07:04:48 via App

Dann wäre es sinnvoll die buttongröße in prozent anzugeben

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Basti Steer
  • Forum-Beiträge: 37

31.03.2014, 12:11:10 via Website

1<RelativeLayout
2 android:layout_width="match_parent"
3 android:layout_height="wrap_content">
4 <View android:id="@+id/strut"
5 android:layout_width="0dp"
6 android:layout_height="0dp"
7 android:layout_centerHorizontal="true"/>
8 <Button
9 android:layout_width="0dp"
10 android:layout_height="wrap_content"
11 android:layout_alignRight="@id/strut"
12 android:layout_alignParentLeft="true"
13 android:text="Left"/>
14 <Button
15 android:layout_width="0dp"
16 android:layout_height="wrap_content"
17 android:layout_alignLeft="@id/strut"
18 android:layout_alignParentRight="true"
19 android:text="Right"/>
20</RelativeLayout>

Hab das ganze nun so gelöst, einfach einen unsichtbaren Text zwischen die Buttons.
Der große Vorteil ist nun, dass man weiter RelativeLayout nutzen kann.

Hat jmd hierfür noch eine Idee?
2. Ich habe eine horizontale Scrollview eingefügt. In dieser füge ich Bilder ein, welche alle im drawable-xxhdpi Ordner liegen und die Größe 1080x1000 haben. Auf meinem HTC-One wird das ganze Jetzt perfekt auf einer Seite angezeigt, problematisch ist es auf größeren und kleineren Geräten. Ich habe schon mehrmals gegooglet und auch selbst verscuht die zu den anderen Ordner hinzuzufügen, habe aber wohl immer etwas falsch gemacht, da diese dann entweder viel zu groß oder zu klein angezeigt wurden.

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

31.03.2014, 16:01:01 via App

wie zeigst du die Bilder denn an?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Basti Steer
  • Forum-Beiträge: 37

31.03.2014, 16:49:49 via Website

1<HorizontalScrollView
2 android:id="@+id/horizontalScrollView1"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 android:orientation="horizontal" >
6
7 <LinearLayout
8 android:layout_width="match_parent"
9 android:layout_height="match_parent"
10 android:orientation="horizontal" >
11
12
13
14
15 <ImageView
16 android:id="@+id/imageView2"
17 android:layout_width="wrap_content"
18 android:layout_height="wrap_content"
19 android:src="@drawable/crunch1" />
20
21 <ImageView
22 android:id="@+id/imageView1"
23 android:layout_width="wrap_content"
24 android:layout_height="wrap_content"
25 android:src="@drawable/crunch2" />
26
27 </LinearLayout>
28 </HorizontalScrollView>

Screenshot



Ich habe eine horizontale Scrollview eingefügt. In dieser füge ich Bilder ein, welche alle im drawable-xxhdpi Ordner liegen und die Größe 1080x1000 haben. Wie kann ich das Problem auf größeren oder kleineren BIldschirmen lösen? Auf meinem Screenshot kann man links ein Gerät erkennen auf dem es perfekt passt von der Größe, rechts auf dem größeren Gerät jedoch nicht.

Antworten
impjor
  • Forum-Beiträge: 1.793

31.03.2014, 18:55:42 via Website

Füge deinem ImageView folgende Attribute hinzu:
android:layout_width="match_parent" Damit wird das Bild so breit wie das Gerät
android:adjustViewBounds="true" Dadurch wird die Höhe des ImageViews so sehr vergrößert, bis sie zur Breite passt oder die Auflösung des Bildes erreicht wird (das ImageView wird dadurch nicht größer als 1000 * 1080 Pixel)
android:scaleType="fitCenter" Optional. Was du brauchst, fitCenter zentriert das ImageView schön in der Mitte

By the way: Du solltest unbedingt nicht ganz so hochauflösende Bilder verwenden: 1000 * 1080 * 3 = 3240000 (Bytes) = ca. 3.1 MB und das für ein(!) einzelnes Bild. Sonst fliegt dir ganz schnell (gerade bei älteren Geräten) eine OutOfMemoryException. Du kannst auch http://tinypng.com (für png's) versuchen. Damit werden PNGs kleiner gemacht, ohne an Qualität zu verlieren.

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Basti SteerMac Systems

Antworten
Basti Steer
  • Forum-Beiträge: 37

01.04.2014, 00:38:13 via Website

Habe mal Impjors Vorschläge angewendet, kann aber keinen Unterschied erkennen?


1<HorizontalScrollView
2 android:id="@+id/horizontalScrollView1"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 android:orientation="horizontal" >
6
7 <LinearLayout
8 android:layout_width="match_parent"
9 android:layout_height="match_parent"
10 android:orientation="horizontal" >
11
12
13
14
15 <ImageView
16 android:id="@+id/imageView2"
17 android:layout_width="match_parent"
18 android:layout_height="wrap_content"
19 android:src="@drawable/crunch1"
20 android:adjustViewBounds="true"/>
21
22 <ImageView
23 android:id="@+id/imageView1"
24 android:layout_width="match_parent"
25 android:layout_height="wrap_content"
26 android:src="@drawable/crunch2"
27 android:adjustViewBounds="true" />
28
29 </LinearLayout>
30 </HorizontalScrollView>


Zum btw.: Welche Größe ist denn noch okay? Habe derzeit rund 40 Bilder mit einer Gesamtgröße von knapp unter 40 Mb. Ist das noch okay?

Antworten