Grades e unidades

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

Aprendizados

  • Se você estiver usando uma grade de referência, use medidas de 4 e 8.
  • Registre as especificações em dp e sp, em vez de pixels.
  • Exporte 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): os pixels escalonáveis têm a mesma função que o dp, mas para fontes. O valor padrão de um sp é o mesmo que o valor padrão 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:notação de dp em comparação com sp.

A principal diferença entre essas unidades de medida é que os pixels dimensioná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 os tamanhos de fonte correspondentes à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 uma variedade de dispositivos e resoluções.

Intervalos de densidade

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

O Android agrupa intervalos de densidades de tela em "buckets" e os usa para entregar o conjunto ideal de recursos ao dispositivo. Os buckets de densidade mais usados são mdpi, hdpi, xhdpi, xxhdpi e xxxhdpi. nodpi e anydpi se referem a um bucket que não é dimensionado por resolução de dispositivo, normalmente usado para drawables vetoriais. Cada um corresponde a um arquivo de recurso 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-de-são-paulo em diferentes densidades

Para calcular o dp:

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

Grades

Grade de valor de referência

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

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

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

Figura 3:as grades de 8 dp são ideais para a maioria dos elementos da interface, 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 para alinhar o conteúdo, mas mantenha o tamanho flexível. Aprenda os conceitos básicos sobre como configurar uma grade de colunas e aplicar conteúdo em Conceitos básicos 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 da 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 relação entre a largura e a altura de um elemento. As proporções são escritas como largura:altura.

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

Recomendamos as seguintes proporções para uso na interface:

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