Criando multi-screen app apoio android

? Jay Vyas @ | Original: StackOverFlow
---

Estou criando um aplicativo no Android que devem suportar múltiplas telas.

Para este efeito, eu tenho lido muitas respostas e uma que eu mais gosto é o estado que eu possa criar diferentes pastas na pasta res seguindo nome,

Para as pequenas telas de layout pequeno,

Para as grandes telas de layout -large ,

Para extra-grandes telas layout xlarge

e eu tenho que criar diferentes layouts para diferentes telas com o mesmo nome . por exemplo mylayout.xml

e eu tenho que colocar seguinte código no arquivo manifest.xml

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

e, finalmente, eu só preciso escrever seguinte linhas no meu arquivo de atividade ,

  setContentView(R.layout.mylayout);

Agora, quando eu executar este aplicativo em diferentes telas de tamanho deve adquirir layouts de diferentes pastas como por resolução da tela.

Mas isso não está acontecendo na minha case.It leva apenas layout que definido na pasta layout.

Por favor, alguém pode me explica por que isto está acontecendo e como posso resolver esse problema para que meu aplicativo pode ser executado de forma eficaz em todas as telas de tamanho.

---

Top 5 Responder

1Arun Antoney @

então plaese tentar nome como este layout sw320dp, layout sw480dp, layout sw600dp, layout sw720dp em vez de layout pequeno, o layout de grande ......

2Exbury @

Em valores pasta convenção de nomenclatura como layout-small só funciona para dispositivos com api version less than 3.1 . Você deve criar arquivo de valores com a nomeação como layout-sw600dp para o nível API maior que 3.1. leia este http://developer.android.com/guide/practices/screens_support.html3.1api

Criando multi-screen app apoio android como este que você deve criar layout sw600dp, layout sw720dp para cada tipo de dispositivos. layout sw600dp significa esse layout funciona para dispositivos com menor largura de 600dp Se você tem layout 600dp e pastas layout sw720dp . pasta primeiro layout funciona para dispositivos com menor largura de 600dp ( 7 ​​polegadas tablet ) para 720dp e segundas obras para dispositivos com menor largura acima 720dp ( 10 polegadas tablet ) .

Se a sua versão mínima exigida é acima de 3.1 você não precisa ter   layout pequeno, pastas layoutxLarge . caso contrário, você tem que considerar   ambos os tipos de fromats layout.

3Sethu @

Por favor, consulte o link abaixo:

http://developer.android.com/guide/practices/screens_support.html Por tamanho de tela diferente, o que se segue é uma lista de diretórios de recursos em um aplicativo que fornece diversos modelos de layout para diferentes tamanhos de tela e diferentes drawables bitmap para pequena, média, alta e telas de alta densidade extra. você poderia usar o tamanho diferente dos arquivos de layout na pasta res e também variam de acordo com as imagens resgatáveis ​​com base na densidade ..

  res/layout/my_layout.xml             // layout for normal screen size ("default")
  res/layout-small/my_layout.xml       // layout for small screen size
  res/layout-large/my_layout.xml       // layout for large screen size
  res/layout-xlarge/my_layout.xml      // layout for extra large screen size
  res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation

Criando multi-screen app apoio android       res / drawable - MDPI / my_icon.png // bitmap para densidade média       res / drawable - HDPI / my_icon.png // bitmap em alta densidade       res / drawable - xhdpi / my_icon.png // bitmap para a densidade muito alta

<compatible-screens>
    <screen
        android:screenDensity="ldpi"
        android:screenSize="small" />
    <screen
        android:screenDensity="mdpi"
        android:screenSize="normal" />
    <screen
        android:screenDensity="xhdpi"
        android:screenSize="large" />
    <screen
        android:screenDensity="xhdpi"
        android:screenSize="xlarge" />        
</compatible-screens>

E seguido por qualquer atividade usar estas linhas ..

android: configChanges = "orientação | screensize | keyboardHidden "

4Sanjeev C @

Aqui está uma lista de verificação rápida sobre como você pode garantir que seu aplicativo exibe corretamente em telas diferentes :

Use wrap_content, fill_parent, ou dp unidades ao especificar dimensões em um arquivo de layout XML. Não use valores pixel codificados no código do aplicativo (.java arquivos ) . Não use AbsoluteLayout (é depreciado em Android 1.5 ) . Você não deve usar RelativeLayout, que utiliza o posicionamento relativo de colocar para fora seus pontos de vista da criança . Fornecer drawables bitmap alternativos para diferentes densidades de tela.

Tire um tempo e ler estes http://developer.android.com/guide/practices/screens_support.html ou para ter uma idéia melhor ver http://developer.android.com/guide/topics/resources/providing-resources.html #BestMatch para que você saiba onde colocar seus recursos.