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.
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.
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.
Elementos menores, como ícones, tipos e alguns elementos nos componentes, são melhor alinhados a uma grade de 4 dp.
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.
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