Hallo,
ich beginne gerade mit der Programmierung von Android-Apps. Von Anfang an möchte ich gleich darauf achten, die Richtlinien von developer.android.com umzusetzen.
Deshalb verwende ich nur "fill_parent", "wrap_content" oder dp-Angaben, damit meine Apps auf jedem Display gleich aussehen.
Aber irgendwie klappt das nicht bei dem Emulator. Ich habe mir für alle 3 Arten (ldpi, mdpi, hdpi) ein Device erstellt, aber nur auf meinem HTC Desire sieht es so aus, wie es soll.
Bei ldpi und mdpi ist das Layout zu lang, bei hdpi ist es zu kurz. Laut den Empfehlungen von developer.android.com sollte jedes Android-Device die dp-Angaben im Verhältnis zur Standard-DPI-Zahl 160 umrechnen.
DPI ist für mich das Verhältnis von Auflösung zu physikalischer Größe des Bildschirms.
Hier ist das Layout, das ich meine:
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="185dp">
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#666666">
</TextView>
</LinearLayout>
<TextView
android:id="@+id/startTextView"
android:layout_width="fill_parent"
android:layout_height="110dp"
android:gravity="center"
android:background="#333333"
android:textSize="30dp"
android:text="@string/start_titel">
</TextView>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="185dp">
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#666666">
</TextView>
</LinearLayout>
</LinearLayout>
Alles anzeigen
Und hier die manifest.xml:
<?xml version="1.0" encoding="UTF-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.***.******"
android:versionCode="1"
android:versionName="1.0">
<application android:label="@string/app_name" android:description="@string/app_description" android:icon="@drawable/icon">
<activity android:name=".**********" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
<supports-screens android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:anyDensity="true">
</supports-screens>
<uses-sdk android:minSdkVersion="4"/>
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>
Alles anzeigen
Ich würde mich freuen, wenn mir jemand sagen kann, wo mein Denkfehler liegt, weil ich von Anfang an alles richtig machen will.