Como faço para mostrar controles em uma posição fixa para várias resoluções de tela no Android?

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

  •  20-09-2019
  •  | 
  •  

Pergunta

Como faço para mostrar controles em uma posição fixa para várias resoluções de tela no Android?

Eu tenho um design de tela como abaixo

<?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>

Ele está funcionando na resolução HVGA (320x480), a barra de progresso aparece na parte inferior da tela, mas se eu executar em outra resolução (WQVGA432 - 240X432) a barra de progresso aparece no meio da tela. Não sou capaz de mostrá -lo em uma posição fixa.

Estou usando o arquivo de manifesto mostra abaixo, mas sem saída

<supports-screens android:smallScreens="true"  
                android:normalScreens="true" 
                android:largeScreens="true"  
                android:anyDensity="true" />

Eu não tenho uma solução, por favor, me dê uma idéia para resolver o problema.

Foi útil?

Solução

Se você deseja que seus layouts funcionem em diferentes telas de resolução, você deve estar dimensionando -as usando dip como a unidade. Por exemplo:

android:layout_marginRight="10dip"

dip significa Pixel independente do dispositivo e usá -los em seu layout significa que o Android escalará automaticamente seu layout, dependendo do que o dispositivo executando o aplicativo possui.

Você pode ler sobre isso no Suportando várias telas Página na documentação do desenvolvedor do Android. Este documento também tem outras opções para lidar com telas diferentes, mas acho que usar dip é provavelmente o mais fácil.

Outras dicas

Depende de como você definiu seu layout: postar seu layout XML ajudará aqui.

Eu acho que se estiver no meio, você tem algo como:

android:layout_gravity="center"

Mas sim, postar seu XML seria um pouco ajuda!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top