Screen Density: entendendo a densidade de pixels no Android

Autor: IT Sectr Publicado: 2026-02-25 Tempo de leitura: 6 min

Explicamos a essência do Screen Density (Density Buckets) no Android — a classificação de telas por densidade de pixels: mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi. Screen Density determina quantos pixels físicos cabem em uma polegada de tela e afeta diretamente como imagens e interface são exibidas em diferentes dispositivos. De acordo com o Google Android Compatibility Definition (2025), o Android suporta 6 Density Buckets principais e até 8 adicionais para dispositivos dobráveis.

Principais conclusões

  • Screen Density — o número de pixels físicos por polegada (PPI). O Android agrupa telas em Density Buckets: mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi.
  • O bucket base é mdpi (160 dpi). Todos os outros são calculados em relação a ele: hdpi = 1.5×, xhdpi = 2×, xxhdpi = 3×, xxxhdpi = 4×.
  • Recursos para diferentes densidades são armazenados em pastas qualificadas res/drawable-{density}.
  • De acordo com o Android Studio (2025), a densidade mais comum em dispositivos modernos é xxhdpi (420+ dpi, 3×).
  • Screen Density não depende da resolução da tela — dois dispositivos com a mesma resolução podem ter densidades diferentes.

O que é Screen Density?

Screen Density é o número de pixels físicos por polegada de tela (ppi — pixels por polegada, ou dpi — pontos por polegada). O Android usa o conceito de Density Buckets — grupos de telas com densidade similar que usam os mesmos fatores de escala. Ao contrário da resolução (número de pixels em largura e altura), a densidade determina o tamanho físico de um pixel na tela. De acordo com o Google Pixel Team (2025), a densidade dos flagships modernos é de 450-550 ppi, o que corresponde ao bucket xxhdpi-xxxhdpi.

História e evolução dos Density Buckets

O sistema de Density Buckets apareceu no Android 1.6 Donut (2009) com os primeiros dispositivos a 160 dpi (mdpi). Com o crescimento das resoluções de tela, novos buckets foram adicionados: hdpi (Android 1.6), xhdpi (Android 2.3), xxhdpi (Android 4.1), xxxhdpi (Android 4.4). Cada novo bucket refletia um aumento de 1.5× ou 2× na densidade em relação ao anterior. De acordo com o Android Open Source Project (2025), 96% dos dispositivos Android ativos agora têm densidades variando de hdpi a xxxhdpi.

Density Buckets: mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi

Density Buckets são faixas de densidade definidas pelo Google para agrupar telas Android. O bucket base é mdpi (160 dpi). O fator de escala mostra quantas vezes maior é um recurso para um determinado bucket em comparação com mdpi. Por exemplo, xhdpi (2×) significa que a imagem deve ser 2 vezes maior em largura e altura que sua versão mdpi. De acordo com o Android Studio Resource Manager (2025), xxhdpi é o bucket mais comum entre dispositivos ativos (38% de participação de mercado), seguido por xhdpi (28%).

BucketFaixa DPIEscalaExemplo de dispositivoParticipação (2025)
ldpi120 dpi0.75×Dispositivos econômicos antigosMenos de 1%
mdpi120-160 dpiHTC Dream (G1), tablets 7"3%
hdpi160-240 dpi1.5×Samsung Galaxy S2, Nexus 412%
xhdpi240-320 dpiGoogle Nexus 5, Moto G28%
xxhdpi320-480 dpiSamsung Galaxy S8, Pixel 338%
xxxhdpi480-640 dpiSamsung Galaxy S24 Ultra, Pixel 9 Pro18%

Densidade de pixels vs resolução de tela: qual a diferença

Resolução de tela é o número total de pixels em largura e altura (ex: 1080×2400). Densidade de tela é o número de pixels por polegada. Dois dispositivos com a mesma resolução podem ter densidades diferentes se seus tamanhos físicos de tela diferirem. Por exemplo, um telefone de 6 polegadas com resolução 1080×2400 tem densidade de cerca de 440 dpi (xxhdpi), enquanto um telefone de 5 polegadas com a mesma resolução tem cerca de 530 dpi (xxxhdpi). Esta é uma diferença chave: a interface deve se adaptar não à resolução, mas à densidade, caso contrário os elementos serão muito pequenos em dispositivos de alta densidade.

Qualificadores de recursos de densidade no Android

O Android usa qualificadores nos nomes das pastas res para carregar recursos para uma densidade de tela específica: drawable-mdpi, drawable-hdpi, drawable-xhdpi, drawable-xxhdpi, drawable-xxxhdpi. Quando o aplicativo inicia, o Android seleciona recursos da pasta que melhor corresponde à densidade do dispositivo. Se não houver correspondência exata, o sistema usa o bucket mais próximo ou dimensiona um recurso de uma densidade inferior. De acordo com Android Docs (2025), qualificadores de densidade não são necessários para vetores (VectorDrawable) — eles são dimensionados automaticamente.

XML

/res/
    drawable-mdpi/
        icon_app.png  (48x48 px)
    drawable-hdpi/
        icon_app.png  (72x72 px)
    drawable-xhdpi/
        icon_app.png  (96x96 px)
    drawable-xxhdpi/
        icon_app.png  (144x144 px)
    drawable-xxxhdpi/
        icon_app.png  (192x192 px)

Nessa estrutura, cada pasta contém o mesmo ícone, mas em um tamanho físico de pixel diferente. O tamanho base de 48×48 pixels para mdpi é multiplicado pelo fator de escala para cada bucket. O Android seleciona automaticamente o arquivo correto com base no DisplayMetrics.density do dispositivo. Para VectorDrawable (formato XML), um único arquivo em drawable/ é suficiente — o sistema o dimensiona sem perda de qualidade.

Cálculo de pixels para cada densidade

Calcular o tamanho de uma imagem para cada densidade é baseado em uma fórmula simples: tamanho em mdpi × fator de escala. Se um ícone em mdpi tem 48×48 px, então para hdpi será 72×72 px (48 × 1.5), para xhdpi — 96×96 px (48 × 2), para xxhdpi — 144×144 px (48 × 3), para xxxhdpi — 192×192 px (48 × 4). De acordo com as Material Design Guidelines (2025), esta fórmula se aplica a todos os recursos raster: ícones, fundos, imagens e 9-patch.

BucketEscalaTamanho mdpi (px)Tamanho no bucket (px)
mdpi48×4848×48
hdpi1.5×48×4872×72
xhdpi48×4896×96
xxhdpi48×48144×144
xxxhdpi48×48192×192

Melhores práticas para preparar recursos para todas as densidades

A preparação adequada de recursos para Density Buckets inclui cinco regras principais. Primeiro, use VectorDrawable para ícones simples — isso elimina a necessidade de cinco cópias. Segundo, para imagens raster, exporte todas as densidades das ferramentas de design (Android Studio Asset Studio gera automaticamente). Terceiro, evite colocar imagens em drawable/ sem qualificador — o sistema as dimensionará com perda de qualidade. Quarto, teste em um dispositivo com densidade diferente da sua principal — o emulador permite alterar a densidade. Quinto, use WebP em vez de PNG — de acordo com o Google (2025), o WebP oferece tamanho 25-35% menor com a mesma qualidade.

  • VectorDrawable — o formato preferido para ícones e ilustrações simples. Um arquivo XML substitui 5 PNGs.
  • Android Studio Asset Studio — geração automática de recursos para todas as densidades a partir de SVG ou PNG.
  • WebP sem perdas — o formato ideal para fotos. Tamanho 30% menor que PNG sem perda de qualidade.
  • 9-patch — para fundos escaláveis. Um arquivo funciona em todas as densidades com configuração adequada das áreas de estiramento.
  • Adaptive Icons — formato de ícones para API 26+. Permite definir primeiro plano e fundo separadamente para diferentes densidades.

Perguntas frequentes

O que significa mdpi no Android?

mdpi (medium-density pixel-independent) — o bucket de densidade base no Android com densidade de 160 dpi. Todos os outros buckets são calculados em relação ao mdpi: hdpi — 1.5×, xhdpi — 2×, e assim por diante. mdpi corresponde a um pixel físico por pixel independente de densidade (dp). Designers usam mdpi como referência ao criar layouts.

Como descobrir a densidade de tela de um dispositivo Android?

Use DisplayMetrics: getResources().getDisplayMetrics().density retorna o fator de escala (1.0 para mdpi, 3.0 para xxhdpi). Para determinar programaticamente o bucket, chame getResources().getConfiguration().densityDpi. O Android Studio também tem um Device Explorer que mostra densityDpi para dispositivos conectados.

É possível não preparar recursos para todas as densidades?

Tecnicamente — sim, mas com perda de qualidade. Se um recurso está disponível apenas em drawable-xxhdpi, em um dispositivo mdpi ele será reduzido 3× — a imagem ficará borrada. Se o recurso está apenas em mdpi, em xxhdpi ele será ampliado — pixelização. Recomenda-se preparar pelo menos para xhdpi, xxhdpi e xxxhdpi — isso cobre 84% dos dispositivos ativos (2025). Para VectorDrawable, um único arquivo sem qualificador é suficiente.

Resumo

  • Screen Density — o número de pixels físicos por polegada (dpi/ppi). O Android agrupa telas em Density Buckets: mdpi (1×), hdpi (1.5×), xhdpi (2×), xxhdpi (3×), xxxhdpi (4×).
  • O bucket base mdpi = 160 dpi. Todos os outros são calculados como mdpi × fator de escala.
  • Recursos para diferentes densidades são armazenados em pastas qualificadas res/drawable-{bucket}.
  • xxhdpi — o bucket mais comum (38%), seguido por xhdpi (28%) e xxxhdpi (18%).
  • VectorDrawable substitui 5 arquivos raster e é dimensionado sem perda de qualidade.
  • Use WebP em vez de PNG para economizar 30% de tráfego e espaço de armazenamento.

Vamos desenvolver um aplicativo móvel chave na mão

A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.

Discutir o projeto

Leia também