Programando para diferentes tamanhos de tela
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