- 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 é um modo em que o app deve ser executado. Ele causa pixelização e desfoque na IU 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 IU 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ê pode usar os atributos do elemento
<supports-screens>
a fim de controlar se ele precisa ser distribuído em telas menores ou ter a IU dimensionada ("aumentada") para se ajustar a telas maiores usando o modo de compatibilidade da tela do sistema. Se você não tiver projetado 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 IU emulando uma tela e uma densidade média normais, aumentando o zoom para que preencha toda a tela. Esteja ciente de que isso causa pixelização e desfoque da IU, por isso é melhor você otimizar a IU para telas grandes.Observação: o Android 3.2 introduz novos atributos:
android:requiresSmallestWidthDp
,android:compatibleWidthLimitDp
eandroid: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 de tela é o último recurso para apps que não foram projetados adequadamente aproveitem os tamanhos de tela maiores. Esse não é um modo recomendado para executar um app, já que oferece uma experiência do usuário que não é ideal. Existem duas versões diferentes do modo de compatibilidade de tela, com base na versão do dispositivo em que o app está sendo 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 desenha 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 IU.
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" (verdadeiro) por padrão. Se for definido como "false" (falso), o sistema vai executar o 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 introduzido pela primeira vez. Não é recomendável usar esse atributo.
android:smallScreens
- Indica se o aplicativo oferece suporte a formatos menores.
Uma tela pequena é definida como aquela que tem uma proporção menor do que
a tela "normal" (HVGA tradicional). Um aplicativo que
não oferece suporte a telas pequenas não vai estar disponível para
dispositivos com telas pequenas em 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" (verdadeiro) por padrão.
android:largeScreens
- Indica se o aplicativo oferece suporte a formatos de tela maiores.
Uma tela grande é definida como significativamente maior
do que a tela de um aparelho "normal". Ela pode exigir cuidados especiais
para que o aplicativo faça bom uso dela, embora possa depender do redimensionamento feito pelo
sistema para preencher a tela.
O valor padrão desse atributo varia entre algumas versões, então é melhor você sempre o declarar explicitamente. Esteja ciente de que a configuração "false" (falso) geralmente ativa o modo de compatibilidade da tela.
android:xlargeScreens
- Indica se o app oferece suporte a formatos de tela extra grandes.
Uma tela extra grande é definida como significativamente maior
do que uma tela "grande", como um tablet ou algo maior. Ela pode exigir cuidados especiais
para que o aplicativo faça bom uso dela, embora possa depender do redimensionamento feito pelo
sistema para preencher a tela.
O valor padrão desse atributo varia entre algumas versões, então é melhor você sempre o declarar explicitamente. Esteja ciente de que a configuração "false" (falso) 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 mais recentes, esse atributo é "true" por padrão e não pode ser definido 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 talvez seja necessário o desativar é no caso do app gerenciar bitmaps diretamente. Consulte o documento de Suporte a várias telas para mais informações.
android:requiresSmallestWidthDp
- Especifica a smallestWidth mínima necessária. A smallestWidth é a menor dimensão do
espaço de tela (em unidades
dp
) que precisa estar disponível para IU do aplicativo, ou seja, a menor das duas dimensões da tela disponível. Portanto, 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 de celular típica tem a largura mínima de 320 dp, um tablet de 7 polegadas tem uma largura mínima de 600 dp e um tablet de 10 polegadas tem uma largura mínima de 720 dp. 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 IU do sistema. Por exemplo, se o dispositivo tiver alguns elementos de IU persistentes em exibição, o sistema vai declarar a smallestWidth do dispositivo como menor do que o tamanho real da tela, considerando esses elementos, que são pixels de tela não disponíveis para a IU do app. Assim, o valor usado precisa ser a largura mínima exigida pelo layout, independente da orientação atual da tela.
Se o app for adequadamente redimensionado para telas menores, até o tamanho pequeno ou uma largura mínima de 320 dp, não é 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 de tela (
sw<N>dp
).Atenção: o sistema Android não presta atenção a esse atributo, por isso ele não afeta a forma como o aplicativo se comporta 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 a filtragem desse atributo (no Android 3.2). Então, você precisa continuar usando os outros atributos de tamanho se o aplicativo não oferecer 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 fica desativado e o layout é redimensionado para caber na tela,
mas há um botão disponível na barra de sistema que permite ao usuário
ativar ou desativar o modo de compatibilidade da tela.
Se o aplicativo for compatível com todos os tamanhos de tela e o layout for redimensionado corretamente, você não precisa usar esse atributo.
Observação: no momento, o modo de compatibilidade da tela simula apenas telas de celulares com 320 dp. Por isso, o modo de compatibilidade da tela não vai 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, você não precisa usar esse atributo. Caso contrário, considere primeiro usar o atributo
android:compatibleWidthLimitDp
. Use o atributoandroid:largestWidthLimitDp
somente quando a funcionalidade do aplicativo for corrompida quando redimensionado em telas maiores e o modo de compatibilidade da tela for a única maneira dos usuários conseguirem usar o app.Observação: no momento, o modo de compatibilidade da tela simula apenas telas de celulares com 320 dp. Por isso, o modo de compatibilidade da tela não vai ser aplicado se o valor de
android:largestWidthLimitDp
for maior que 320.Esse atributo foi introduzido no nível 13 da API.
- introduzido em:
- Nível 4 da API
- veja também:
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2022-09-13 UTC.
[]
[]