Qualificadores de recursos no Surface Duo

Quando seu aplicativo se estende em um dispositivo de tela dupla, você pode ver que o layout que você está usando no momento não é perfeitamente adaptado para essa configuração. Por exemplo, você poderá observar que há conteúdo oculto pela dobradiça e poderá considerar alguns ajustes de layout para que seu aplicativo tenha uma aparência melhor e se comporte melhor quando for usado em um dispositivo de tela dupla. Para gerenciar esses ajustes, o Android fornece qualificadores para lidar com várias configurações; portanto, se seu aplicativo estiver sendo executado em um dispositivo com uma tela pequena, um tablet com tela de 10" em modo paisagem, ou no Surface Duo, você poderá usar valores de qualificador diferentes para ajudar a otimizar seu aplicativo para configurações de dispositivo específicas.

Detectar o Surface Duo

Para os dispositivos Surface Duo, você pode usar o qualificador sw720dp-2754×1800, por exemplo:

  • values-sw720dp-2754×1800 – Para valores de recurso, como arquivos strings.xml
  • layout-sw720dp-2754×1800 – Para arquivos XML de layout

O Surface Duo usará os recursos localizados lá. Se nenhum recurso específico estiver disponível, o Surface Duo aplicará os qualificadores existentes em ordem de precedência.

Como o qualificador é construído

As dimensões do Surface Duo indicam que o dispositivo no modo paisagem duplicada tem uma largura mínima de 720 dp. Esse valor não é alterado quando a orientação da tela muda, portanto, ele permanece constante, tanto no modo retrato duplo quanto no modo paisagem duplicada. Isso é representado como sw720dp no qualificador.

O valor 2754 × 1800 fornece uma configuração mais específica. Como o sw720dp pode ser compartilhado com vários tablets disponíveis no mercado, o valor 2754 × 1800 é a largura e a altura mínimas do dispositivo Surface Duo em pixels. A largura total do Surface Duo 2 é 2754 px. O Surface Duo tem 1800 px de altura. A combinação desses dois valores fornece as dimensões mínimas de 2754 x 1800 px que corresponderão a ambos quando usadas como qualificador de recursos.

Observação

A codificação de recursos em valores específicos pode ter consequências indesejadas; se um novo dispositivo for exibido com o mesmo tamanho de tela, ele também corresponderá ao qualificador. Planeje seus recursos adequadamente.

Largura mínima da tela no código

Também é possível verificar o valor da largura mínima da tela no códio usando o resources.configuration.smallestScreenWidthDp, que está disponível em um contexto de interface do usuário, como uma classe de atividade. Evite usar o valor de um contexto que não pertence à interface do usuário (por exemplo, do aplicativo) e evite armazenar o valor em cache, pois ele pode mudar em um dispositivo de tela dupla ou em outra situação em que o uso de várias janelas está habilitado e o aplicativo é iniciado ou movido para uma parte da tela em vez de usar a tela inteira.

Recursos