Wie zeige ich Steuerelemente an einer festen Position für verschiedene Bildschirmauflösungen in Android?

StackOverflow https://stackoverflow.com/questions/1946480

  •  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.

War es hilfreich?

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!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top