<supports-screens>

Sintaxe:
<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"/>
contido em:
<manifest>
descrição:

Permite que você especifique os tamanhos de tela a que o aplicativo oferece suporte e ative o modo de compatibilidade para telas maiores do que os tamanhos com suporte. É importante que você sempre use esse elemento no aplicativo para especificar os tamanhos de tela a que o app oferece suporte.

Observação: o modo de compatibilidade da tela não é o modo em que o aplicativo será executado. Isso causa pixelização e desfoque na interface devido ao zoom. A maneira correta de fazer o app funcionar bem em telas grandes é seguir a Visão geral de compatibilidade da tela e fornecer layouts alternativos para diferentes tamanhos de tela.

Um app oferece "suporte" a um tamanho de tela se ele for dimensionado corretamente para preencher a tela inteira. O dimensionamento normal aplicado pelo sistema funciona bem na maioria dos aplicativos, e você não precisa fazer mais nada para que o app funcione em telas maiores do que as de um dispositivo móvel.

No entanto, é importante que você forneça recursos de layout alternativos para otimizar a interface do aplicativo em diferentes tamanhos de tela. Por exemplo, talvez você queira modificar o layout de uma atividade quando executada em um tablet em comparação com um dispositivo móvel.

No entanto, se o aplicativo não funcionar bem quando redimensionado para caber em diferentes tamanhos de tela, você poderá usar os atributos do elemento <supports-screens> para controlar se ele será distribuído apenas para telas menores ou se terá a interface ampliada ou "aumentada" para se ajustar a telas maiores usando o modo de compatibilidade da tela do sistema.

Se você não projetar o app para tamanhos de tela maiores e o redimensionamento normal não alcançar os resultados adequados, o modo de compatibilidade da tela vai escalonar a interface emulando uma tela de tamanho normal e densidade média. Em seguida, ele aumenta o zoom para que preencha toda a tela. Esteja ciente de que isso causa pixelização e desfoque da interface, por isso é melhor você otimizar a interface para telas grandes.

Observação: o Android 3.2 introduziu novos atributos: android:requiresSmallestWidthDp, android:compatibleWidthLimitDp e android:largestWidthLimitDp. Se você estiver desenvolvendo um aplicativo para Android 3.2 e versões mais recentes, use esses atributos para declarar o suporte ao tamanho da tela, em vez dos atributos baseados em tamanhos de tela generalizados.

Sobre o modo de compatibilidade da tela

O modo de compatibilidade da tela é um último recurso para apps que não foram projetados corretamente para aproveitar tamanhos de tela maiores. Esse não é um modo recomendado para executar um app porque ele pode oferecer uma experiência ruim ao usuário. Há duas versões do modo de compatibilidade da tela com base na versão do dispositivo em que o app é executado.

Nas versões 1.6 a 3.1 do Android, o sistema executa o aplicativo em uma janela de “selo postal”. Ele emula uma tela de 320 dp x 480 dp com uma borda preta que preenche a área restante da tela.

No Android 3.2 e versões mais recentes, o sistema renderiza o layout como faria em uma tela de 320 dp x 480 dp e o amplia para preencher a tela. Isso geralmente causa artefatos como desfoque e pixelização na interface.

Para mais informações sobre como oferecer suporte a diferentes tamanhos de tela para evitar o uso do modo de compatibilidade da tela no aplicativo, leia sobre a Visão geral da compatibilidade da tela.

atributos:
android:resizeable
Indica se o app pode ser redimensionado para diferentes tamanhos de tela. Esse atributo é "true" por padrão. Se definido como "false", o sistema executará seu aplicativo no modo de compatibilidade da tela em telas grandes.

Esse atributo foi descontinuado. Ele foi lançado para ajudar na transição dos aplicativos do Android 1.5 para o 1.6, quando o suporte a várias telas foi apresentado pela primeira vez. Não o utilize.

android:smallScreens
Indica se o aplicativo oferece suporte para formatos de tela "pequenos". Uma tela pequena é definida como aquela que tem uma proporção menor do que a tela "normal" ou HVGA tradicional. Um aplicativo que não oferece suporte para telas pequenas não fica disponível para dispositivos de tela pequena de serviços externos, como o Google Play, porque há pouco que a plataforma possa fazer para que um aplicativo funcione em uma tela menor. Esse valor é "true" por padrão.
android:normalScreens
Indica se um aplicativo oferece suporte aos formatos de tela "normais". Tradicionalmente, uma tela "normal" é de densidade média HVGA, mas telas de baixa densidade WQVGA e de alta densidade WVGA também são consideradas normais. Esse atributo é "true" por padrão.
android:largeScreens
Indica se o aplicativo oferece suporte para formatos de tela "grandes". Uma tela grande é definida como significativamente maior do que a tela de um celular "normal". Assim, pode ser necessário um cuidado especial da parte do aplicativo para fazer bom uso dela. No entanto, pode ser necessário redimensionar pelo sistema para preencher a tela.

O valor padrão para isso varia entre algumas versões, por isso é melhor declarar explicitamente esse atributo. Esteja ciente de que defini-lo como "false" geralmente ativa o modo de compatibilidade da tela.

android:xlargeScreens
Indica se o aplicativo oferece suporte para formatos de tela "extra grandes". Uma tela extra grande é definida como significativamente maior do que uma tela "grande", como um tablet ou algo ainda maior. Pode ser necessário um cuidado especial da parte do aplicativo para fazer bom uso dessas telas. No entanto, pode ser necessário redimensionar pelo sistema para preencher a tela.

O valor padrão para isso varia entre algumas versões, por isso é melhor declarar explicitamente esse atributo. Esteja ciente de que defini-lo como "false" geralmente ativa o modo de compatibilidade da tela.

Esse atributo foi introduzido no nível 9 da API.

android:anyDensity
Indica se o aplicativo inclui recursos para acomodar qualquer densidade de tela.

Para aplicativos com suporte ao Android 1.6 (nível 4 da API) e versões mais recentes, ele é "true" por padrão. Não defina como "false", a menos que você tenha absoluta certeza de que isso é necessário para que o aplicativo funcione. A única ocasião em que pode ser necessário desativá-lo é se o app manipular bitmaps diretamente. Para mais informações, consulte a Visão geral de compatibilidade da tela.

android:requiresSmallestWidthDp
Especifica o valor mínimo necessário da smallestWidth para o app. A smallestWidth é a menor dimensão do espaço de tela, em unidades dp, que precisa estar disponível para a interface do aplicativo. Ou seja, é a menor das duas dimensões disponíveis da tela.

Para que um dispositivo seja considerado compatível com o aplicativo, a smallestWidth do dispositivo precisa ser igual ou maior que esse valor. Normalmente, o valor que você fornece é a "largura mínima" a que o layout oferece suporte, independente da orientação atual da tela.

Por exemplo, uma tela típica de celular tem 320 dp de smallestWidth, um tablet de 7 polegadas tem 600 dp de smallestWidth e um tablet de 10 polegadas tem 720 dp de smallestWidth. Esses valores geralmente são a smallestWidth, porque são a menor dimensão do espaço disponível na tela.

O tamanho com que o valor é comparado considera as decorações da tela e a interface do sistema. Por exemplo, se o dispositivo tiver alguns elementos de interface persistentes na tela, o sistema declarará que a smallestWidth do dispositivo é menor que o tamanho real da tela, porque há pixels da tela que não estão disponíveis para a interface.

Se o aplicativo for adequadamente redimensionado para telas menores, até o tamanho "pequeno" ou uma largura mínima de 320 dp, não será necessário usar esse atributo. Caso contrário, use um valor desse atributo que corresponda ao menor valor usado pelo seu aplicativo para o menor qualificador de largura da tela (sw<N>dp).

Cuidado: o sistema Android não detecta esse atributo, então ele não afeta o comportamento do aplicativo durante a execução. Em vez disso, ele é usado para ativar a filtragem do app em serviços como o Google Play. No entanto, o Google Play não oferece suporte para esse atributo para filtragem no Android 3.2. Continue usando os outros atributos de tamanho caso seu aplicativo não ofereça suporte a telas pequenas.

Esse atributo foi introduzido no nível 13 da API.

android:compatibleWidthLimitDp
Este atributo permite ativar o modo de compatibilidade da tela como um recurso opcional especificando a largura máxima da tela para que o aplicativo foi projetado. Se o menor lado da tela disponível de um dispositivo for maior que o valor desse atributo, os usuários ainda vão poder instalar o aplicativo, mas vão ter a opção de o executar no modo de compatibilidade da tela.

Por padrão, o modo de compatibilidade da tela será desativado e o layout será redimensionado para caber na tela normalmente. Um botão ficará disponível na barra do sistema e permitirá que o usuário ative ou desative o modo de compatibilidade da tela.

Se o aplicativo for compatível com todos os tamanhos de tela e o layout for redimensionado corretamente, não será necessário usar esse atributo.

Observação: atualmente, o modo de compatibilidade da tela emula apenas telas de smartphones com largura de 320 dp. Portanto, esse modo não será aplicado se o valor de android:compatibleWidthLimitDp for maior que 320.

Esse atributo foi introduzido no nível 13 da API.

android:largestWidthLimitDp
Esse atributo permite que você force a ativação do modo de compatibilidade da tela especificando a largura máxima da tela para que o aplicativo foi projetado. Se o menor lado da tela disponível de um dispositivo for maior que o valor desse atributo, o aplicativo vai ser executado no modo de compatibilidade da tela sem que o usuário possa o desativar.

Se o aplicativo for compatível com todos os tamanhos de tela e o layout for redimensionado corretamente, não será necessário usar esse atributo. Caso contrário, primeiro considere usar o atributo android:compatibleWidthLimitDp. Use o atributo android:largestWidthLimitDp somente quando a funcionalidade do aplicativo for corrompida quando o app for redimensionado para telas maiores e o modo de compatibilidade da tela for a única maneira de usar o aplicativo.

Observação: atualmente, o modo de compatibilidade da tela emula apenas telas de smartphones com largura de 320 dp. Esse modo não será aplicado se o valor de android:largestWidthLimitDp for maior que 320.

Esse atributo foi introduzido no nível 13 da API.

introduzido no:
Nível 4 da API
confira também: