Programando para diferentes tamanhos de tela

De Basef
Revisão de 09h19min de 27 de abril de 2015 por Admin (discussão | contribs)

(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para: navegação, pesquisa

A programação para múltiplas resoluções de tela em um único aplicativo tornou-se possível a partir da versão 1.6 do Android.

É necessário declarar o seguinte no arquivo de manifesto (dentro de <manifest>):

    <supports-screens android:resizeable=["true"| "false"]
                      android:smallScreens=["true" | "false"]
                      android:normalScreens=["true" | "false"]
                      android:largeScreens=["true" | "false"]
                      android:xlargeScreens=["true" | "false"]
                      android:anyDensity=["true" | "false"]
                      android:requiresSmallestWidthDp="integer"
                      android:compatibleWidthLimitDp="integer"
                      android:largestWidthLimitDp="integer"/>

Depois é necessário criar os layouts dentro do folder /res/:

  • Médio: /res/layout/
  • Pequeno: /res/layout-small/
  • Grande: /res/layout-large/
  • Extra Grande: /res/layout-xlarge/

Por padrão, o Android redimensiona os bitmap drawables para garantir que todos tenham o mesmo tamanho em dispositivos com telas de tamanho diferente. Isto pode fazer com que a imagem fique serrilhada ou perca a qualidade. Para evitar este defeito, deve-se criar mais alguns diretórios na pasta /res/:

  • Pequeno: /res/drawable-ldpi/
  • Médio: /res/drawable-mdpi/
  • Grande: /res/drawable-hdpi/
  • Extra Grande: /res/drawable-xhdpi/

NOTA: A partir da versão 3.2 do Android, o suporte para múltiplas resoluções é feito através do uso de outros qualifiers.  Por exemplo, para criar um layout com largura de 400 pixels, deve-se criar o folder /res/layout-sw400dp/. Para mais informações sobre suporte para múltiplas resoluções: http://developer.android.com/guide/practices/screens_support.html