Come faccio a mostrare i controlli in una posizione fissa per varie risoluzioni dello schermo in Android?
-
20-09-2019 - |
Domanda
Come faccio a mostrare i controlli in una posizione fissa per varie risoluzioni dello schermo in Android?
Ho un design dello schermo come di seguito
<?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>
Funziona con la risoluzione HVGA (320x480), la barra di avanzamento appare nella parte inferiore dello schermo, ma se utilizzo un'altra risoluzione (WQVGA432 - 240x432) la barra di avanzamento appare al centro dello schermo.Non sono in grado di mostrarlo in una posizione fissa.
Sto utilizzando il file manifest mostrato di seguito ma nessun output
<supports-screens android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:anyDensity="true" />
Non ho una soluzione quindi per favore dammi qualche idea per risolvere il problema.
Soluzione
Se desideri che i tuoi layout funzionino su schermi con risoluzioni diverse, dovresti dimensionarli utilizzando dip
come unità.Per esempio:
android:layout_marginRight="10dip"
dip
sta per Device Independent Pixel e il loro utilizzo nel layout significa che Android ridimensionerà automaticamente il layout in base al display del dispositivo su cui è in esecuzione l'applicazione.
Puoi leggere di questi nel Supporto di più schermi pagina nella documentazione per sviluppatori Android.Questo documento contiene anche altre opzioni per gestire diversi display, ma penso che lo utilizzino dip
è probabilmente il più semplice.
Altri suggerimenti
Dipende da come hai definito il tuo layout:pubblicare il tuo XML di layout aiuterà qui.
Immagino che se nel mezzo hai qualcosa del tipo:
android:layout_gravity="center"
Ma sì, pubblicare il tuo XML sarebbe di grande aiuto!