Wie zeige ich Steuerelemente an einer festen Position für verschiedene Bildschirmauflösungen in Android?
-
20-09-2019 - |
Frage
Wie zeige ich Steuerelemente an einer festen Position für verschiedene Bildschirmauflösungen in Android?
Ich habe ein Bildschirmdesign wie unten
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center_horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/img_background_loadbackground">
<TableRow>
<TextView
android:id="@+id/tv1"
android:layout_width="fill_parent"
android:layout_height="300sp"/>
</TableRow>
<TableRow>
</TableRow>
<ProgressBar
android:id="@+id/progressbar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</TableLayout>
Es arbeitet in der Auflösung von HVGA (320x480), die ProgressBar erscheint am unteren Rand des Bildschirms, aber wenn ich in einer anderen Auflösung (WQVGA432 - 240x432) laufe, erscheint die Progressbar in der Mitte des Bildschirms. Ich kann es nicht in einer festen Position zeigen.
Ich verwende die Manifest -Datei unten, aber keine Ausgabe
<supports-screens android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:anyDensity="true" />
Ich habe keine Lösung. Bitte geben Sie mir bitte eine Idee, um das Problem zu lösen.
Lösung
Wenn Sie möchten, dass Ihre Layouts auf verschiedenen Auflösungsbildschirmen funktionieren, sollten Sie sie verwenden, indem Sie sie verwenden dip
als Einheit. Zum Beispiel:
android:layout_marginRight="10dip"
dip
steht für Geräteunabhängige Pixel und verwendet diese in Ihrem Layout, dass Android Ihr Layout automatisch skaliert, je nachdem, welches Gerät das Gerät ausgeführt hat, das Ihre Anwendung ausführt.
Sie können über diese in der lesen Unterstützung mehrerer Bildschirme Seite in der Android -Entwicklerdokumentation. Dieses Dokument hat auch einige andere Optionen für den Umgang mit verschiedenen Displays, aber ich denke, ich benutze die Verwendung dip
ist wahrscheinlich am einfachsten.
Andere Tipps
Es hängt davon ab, wie Sie Ihr Layout definiert haben: Das Posten Ihres Layouts XML hilft hier.
Ich würde vermuten, ob Sie in der Mitte so etwas haben wie:
android:layout_gravity="center"
Aber ja, das Posten Ihres XML wäre ein bisschen Hilfe!