- 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
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 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. AsmallestWidth
é a menor dimensão do espaço de tela, em unidadesdp
, 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 desmallestWidth
e um tablet de 10 polegadas tem 720 dp desmallestWidth
. Esses valores geralmente são asmallestWidth
, 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 que320
.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 atributoandroid: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 que320
.Esse atributo foi introduzido no nível 13 da API.
- introduzido no:
- Nível 4 da API
- confira 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 2024-08-22 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Não contém as informações de que eu preciso"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Muito complicado / etapas demais"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Desatualizado"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"Problema na tradução"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Problema com as amostras / o código"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Outro"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Fácil de entender"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Meu problema foi resolvido"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Outro"
}]
{"lastModified": "\u00daltima atualiza\u00e7\u00e3o 2024-08-22 UTC."}
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2024-08-22 UTC."]]