Grades e unidades

Os pixels de densidade independente (dp) e os pixels escalonáveis (sp) são essenciais para criar layouts e apresentar fontes que respondam de maneira uniforme à ampla variedade de densidades de tela, classes de tamanho, formatos e proporções que compõem dispositivos Android.

Aprendizados

  • Se você estiver usando uma grade de referência, use medidas de 4 e 8.
  • Anotar especificações em dp e sp, em vez de pixels.
  • Exportar gráficos bitmap/raster para todos os buckets.
  • Projete com uma mentalidade responsiva, considerando diferentes classes de tamanho, resoluções e proporções.
  • Pixels de densidade independente (dp): são unidades flexíveis que são dimensionadas para ter dimensões uniformes em qualquer tela. Eles são baseados na densidade física da tela. Essas unidades são relativas a uma tela de 160 pontos por polegada (DPI), em que 1 dp é aproximadamente igual a 1 px.
  • Pixels escalonáveis (sp): têm a mesma função que dp, mas para fontes. O valor padrão de um SP é o mesmo de um DP. O sistema Android calcula o tamanho da fonte a ser usado com base no dispositivo e na preferência do usuário definida no app Configurações do dispositivo Android.
Figura 1:observação de dp x sp

A principal diferença entre essas unidades de medida é que os pixels escalonáveis preservam as configurações de fonte de um usuário. Os usuários que têm configurações de texto maiores para acessibilidade veem tamanhos de fonte que correspondem às preferências de tamanho de texto. Saiba como mudar o tamanho da fonte no Compose.

O Android usa essas unidades para ajudar a dimensionar e traduzir em toda a variedade de dispositivos e resoluções.

Intervalos de densidade

Telas de alta densidade têm mais pixels por polegada do que as de baixa densidade. Como resultado, elementos de interface com as mesmas dimensões de pixel parecem maiores em telas de baixa densidade e menores em telas de alta densidade. Por isso, não declare medidas em pixels.

O Android agrupa intervalos de densidades de tela em "buckets" e os usa para entregar o conjunto ideal de recursos ao seu dispositivo. Os intervalos de densidade mais usados são mdpi, hdpi, xhdpi, xxhdpi e xxxhdpi (nodpi e anydpi se referem a um intervalo que não é dimensionado por resolução do dispositivo, geralmente usado para elementos gráficos vetoriais). Cada um corresponde a um arquivo de recursos do app.

mdpi tem uma densidade de x1, hdpi tem uma densidade de x1,5, xhdpi tem uma densidade de x2, xxhdpi tem uma densidade de x3 e xxxhdpi tem uma densidade de x4.
Figura 2:melão-cantalupo de festa nas respectivas densidades

Para calcular o dp:

dp = (largura em pixels * 160) / densidade da tela

Grades

Grade de referência

Criar com uma grade subjacente ajuda a criar espaçamento e alinhamento consistentes na interface. A interface do Android usa uma grade de 8 dp para layout, componentes e espaçamento.

Vídeo 1:mostrando uma grade de 8 dp destacando incrementos de 8 dp

Elementos menores, como ícones, tipos e alguns elementos dentro de componentes, são melhor alinhados a uma grade de 4 dp.

Figura 3:grades de 8 dp são ideais para a maioria dos elementos de UI, enquanto uma grade de 4 dp é melhor para elementos menores, como ícones.

Grade de colunas

As colunas criam uma estrutura de grade para fornecer definição vertical a um layout dividindo o conteúdo na área do corpo. O conteúdo é colocado nas áreas da tela que contêm colunas. Alinhe com uma grade subjacente para alinhar o conteúdo, mas mantenha o dimensionamento flexível. Aprenda o básico sobre como configurar uma grade de colunas e aplicar conteúdo em Fundamentos de layout.

Figura 4:grade de quatro colunas

Confira a página Layouts canônicos do Material 3 para saber como criar layouts flexíveis em vários formatos.

Classes de tamanho

As classes de tamanho de janela são um conjunto de pontos de interrupção específicos de janela de visualização que ajudam você a projetar, desenvolver e testar layouts de aplicativos responsivos e adaptáveis. O Android divide as classes de tamanho de janela em três: compacta, média e expandida. Saiba mais sobre classes de tamanho de janela.

Proporções

Uma proporção é a proporção da largura de um elemento em relação à altura. As proporções são escritas como largura:altura.

Para manter a consistência no layout, use uma proporção constante em elementos como imagens, superfícies e tamanho da tela.

Recomendamos usar as seguintes proporções na sua interface:

  • 16:9
  • 3:2
  • 4:3
  • 1:1
  • 3:4
  • 2:3