px: essência, pixels físicos no desenvolvimento mobile

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

px — um pixel físico, o menor elemento de uma imagem na tela de um dispositivo. No desenvolvimento mobile, px é usado como unidade básica de resolução de tela e densidade de pixels (PPI), mas praticamente nunca é usado para layout de interface — em vez disso, são usadas unidades lógicas pt, dp e sp. Este artigo explica como px difere das unidades lógicas, como resolução e PPI estão relacionados e por que usar px diretamente no código é um antipadrão.

Pontos principais

  • px — um pixel físico do display que não leva em conta a densidade da tela (PPI)
  • Resolução de tela em px — o número de pixels na largura e altura, por exemplo 1179 × 2556 px
  • PPI — pixels por polegada, o principal indicador de nitidez de imagem
  • Unidades lógicas (dp, pt, sp) abstraem px e adaptam a interface para diferentes telas
  • Usar px no código é um antipadrão porque a interface não será exibida corretamente em dispositivos com densidades diferentes

O que é px?

px (pixel, picture element) — o menor elemento endereçável de uma imagem raster ou display. Cada pixel armazena informações de cor no modelo RGB (vermelho, verde, azul) com profundidade de cor de 8 a 10 bits por canal. Os displays de dispositivos móveis modernos contêm milhões de pixels: iPhone 15 Pro — 3 milhões, iPad Pro 12.9" — 5,6 milhões de pixels.

O tamanho físico de um pixel depende da densidade do display (PPI). Em um dispositivo com 326 PPI (iPhone 11), um pixel tem aproximadamente 0,078 mm. Em um display com 460 PPI (iPhone 15 Pro) — 0,055 mm. Quanto menor o tamanho físico do pixel, maior a nitidez da imagem. Ao mesmo tempo, a densidade de pixels afeta diretamente o desempenho da renderização: mais pixels = mais trabalho para a GPU.

De acordo com a Apple, a resolução do display do iPhone 15 Pro é 1179 × 2556 px a 460 PPI. Para comparação, o iPhone SE (3ª geração) — 750 × 1334 px a 326 PPI. A diferença no número total de pixels é de quase 3 vezes, o que explica os maiores requisitos de GPU nos modelos Pro.

Resolução de tela em pixels

Resolução de tela — o número de pixels físicos horizontal e verticalmente. É escrita no formato largura × altura, por exemplo 1179 × 2556 px. A resolução é uma característica fundamental do display que não pode ser alterada programaticamente — é fixada no nível de hardware e matriz.

DispositivoResolução (px)PPIProporção de tela
iPhone SE (3ª geração)750 × 133432616:9
iPhone 141170 × 253246019.5:9
iPhone 15 Pro Max1290 × 279646019.5:9
Samsung Galaxy S24 Ultra1440 × 312050519.5:9
Google Pixel 8 Pro1344 × 299249020:9
iPad Pro 12.9"2048 × 27322644:3

A resolução em pixels não deve ser confundida com o tamanho lógico da tela (em pt para iOS ou dp para Android). Por exemplo, o iPhone 14 tem um tamanho lógico de 390 × 844 pt, mas uma resolução física de 1170 × 2532 px — exatamente 3 vezes maior, pois o fator de escala é 3.

PPI e densidade de pixels

PPI (pixels per inch) — o número de pixels por polegada do display. Calculado pela fórmula: PPI = √(largura² + altura²) / diagonal. Quanto maior o PPI, menores são os pixels individuais e mais suave a imagem parece. A Apple considera um display Retina aquele com PPI acima de 300 a uma distância de visualização típica.

Diferentes categorias de dispositivos têm diferentes densidades: Apple Watch — 326 PPI, iPhone — 326–460 PPI, iPad — 264 PPI, MacBook Pro — 254–264 PPI. Dispositivos Android classificam a densidade através de Density Buckets: mdpi (160 dpi), hdpi (240), xhdpi (320), xxhdpi (480), xxxhdpi (640). Esses buckets determinam qual recurso (imagem, dimens) será carregado para o dispositivo.

Impacto do PPI no desenvolvimento: quanto maior a densidade, mais memória é necessária para armazenar texturas e imagens. Um pixel em um display de 500 PPI requer 2,5 vezes mais memória GPU do que em um display de 320 PPI para o mesmo tamanho de elemento lógico. Otimizar assets para buckets de densidade específicos é uma prática padrão no desenvolvimento Android.

px vs unidades lógicas: pt, dp, sp

Os pixels físicos (px) diferem das unidades lógicas (pt, dp, sp) por estarem vinculados à resolução do hardware e não escalarem. As unidades lógicas, ao contrário, abstraem o desenvolvedor do display específico, permitindo que um único valor de 100 pt seja exibido com o mesmo tamanho físico em dispositivos diferentes.

UnidadePlataformaDepende de PPIEscalaFinalidade
pxTodasSim (pixel físico)NãoImagens, buffers, Metal
ptiOS/macOSNão (ponto lógico)fator de escalaLayout, UIKit, SwiftUI
dpAndroidNão (independente de densidade)bucket de densidadeLayout, tamanhos de elementos
spAndroidNão (independente de escala)densidade + escala de fonteTexto (textSize)

Fórmulas de conversão: para iOS — px = pt × scale (onde scale = 1, 2 ou 3). Para Android — px = dp × (dpi / 160). O uso direto de px no código significa que a interface parecerá diferente em dispositivos com densidades diferentes: em uma tela com PPI alto, o elemento será muito pequeno, e em uma com PPI baixo — muito grande.

Por que px não é usado no código

Usar px no código-fonte de um aplicativo mobile é um antipadrão que leva à exibição incorreta da interface em dispositivos com diferentes densidades de pixels. Frameworks modernos (UIKit, SwiftUI, Jetpack Compose, XML Layouts) proíbem ou não recomendam especificar tamanhos em pixels.

  • iOS UIKit — todos os frame, bounds e constraint constants são definidos em pt. Pixels aparecem apenas no estágio de rasterização através de UIGraphicsImageRenderer
  • SwiftUI — não há API para definir tamanhos em px. Todos os valores são em pt via Font, frame, padding
  • Android XML — se você especificar px em dimens.xml, o Android Studio mostra um aviso lint: "Use `sp` instead of `px` for text sizes"
  • Jetpack Compose — TextUnit para texto, Dp para elementos. O compilador não permite misturar tipos

O único uso legítimo de px no código é trabalhar com rasters: carregar Bitmap, criar Canvas para renderização de imagens, trabalhar com Metal ou OpenGL. Nesses casos, px são os pixels físicos do buffer de destino e devem ser considerados para renderização correta. Em todos os outros casos, unidades lógicas são usadas.

Pixels em imagens e assets

Imagens e ícones são armazenados em pixels, mas versões diferentes são fornecidas para cada tipo de tela. iOS usa os sufixos @1x, @2x, @3x em Assets.xcassets. Android usa as pastas drawable-mdpi (1×), drawable-hdpi (1.5×), drawable-xhdpi (2×), drawable-xxhdpi (3×), drawable-xxxhdpi (4×). O sistema seleciona automaticamente o arquivo correto com base na densidade da tela.

Escala iOSBucket AndroidFatorExemplo (48 pt/dp)
@1xmdpi (160 dpi)48 × 48 px
@2xxhdpi (320 dpi)96 × 96 px
@3xxxhdpi (480 dpi)144 × 144 px
xxxhdpi (640 dpi)192 × 192 px

Regra de entrega de assets: crie a imagem em formato vetorial (PDF, SVG) e exporte para cópias raster dos tamanhos necessários. Assets vetoriais escalam sem perda de qualidade e ocupam menos espaço no repositório. No Android, recursos vetoriais podem ser usados diretamente através de VectorDrawable, eliminando a necessidade de múltiplas cópias raster.

Perguntas frequentes

Qual é a diferença entre px e dp?

px — um pixel físico da tela. dp (density-independent pixel) — uma unidade lógica do Android igual a 1 px em uma tela com densidade de 160 dpi. Em densidades diferentes, dp se converte automaticamente em um número diferente de px, preservando o tamanho físico do elemento.

Por que não se pode especificar tamanhos em px no código?

Porque px não leva em conta a densidade da tela. Um elemento de 100 px parecerá diferente em dispositivos com PPI diferente: em uma tela de 326 PPI será maior do que em 460 PPI. Unidades lógicas (dp, pt, sp) resolvem esse problema automaticamente.

O que é PPI e como é calculado?

PPI (pixels per inch) — o número de pixels por polegada do display. Calculado pela fórmula: PPI = √(w² + h²) / d, onde w e h são a resolução em px, d é a diagonal em polegadas. Quanto maior o PPI, mais nítida a imagem. O display Retina da Apple começa em 300 PPI.

Quando o uso de px é justificado?

px é justificado ao trabalhar com buffers raster: criar Bitmap, renderizar em Canvas, programar shaders Metal/OpenGL, processar imagens da câmera. Em layout e tipografia, px não é usado — pt (iOS), dp e sp (Android) são aplicados.

Como descobrir a resolução da tela em px?

No iOS: UIScreen.main.nativeBounds retorna o tamanho em px. No Android: DisplayMetrics.widthPixels e heightPixels de context.resources.displayMetrics. No SwiftUI: GeometryReader retorna o tamanho em pt, para px é necessário multiplicar por displayScale.

Resumo

  • px — um pixel físico do display, a unidade fundamental de resolução de tela
  • Resolução — o número de pixels horizontal e verticalmente, fixada no nível de hardware
  • PPI — pixels por polegada, determina a nitidez da imagem e requisitos de GPU
  • Unidades lógicas (pt, dp, sp) abstraem px e adaptam a interface para qualquer tela
  • Antipadrão — usar px em layout e tipografia; o domínio correto são buffers raster
  • Assets são fornecidos em diferentes resoluções (@1x/@2x/@3x para iOS, density buckets para Android)
  • Formatos vetoriais (PDF, SVG, VectorDrawable) são preferíveis a múltiplas cópias raster

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