Skip to content

Most visited

Recently visited

navigation

Suporte a diferentes densidades

Esta lição mostra como oferecer suporte para diferentes densidades de tela oferecendo recursos diversos e usando unidades de medição independentes de resolução .

Usar pixels independentes de densidade

Uma armadilha comum a ser evitada ao projetar os layouts é usar pixels absolutos para definir distâncias ou tamanhos. Definir dimensões de layout com pixels é um problema, pois diferentes telas têm diferentes densidades de pixels, de maneira que o mesmo número de pixels pode corresponder a diferentes tamanhos físicos nos vários dispositivos. Portanto, ao especificar dimensões, sempre use unidades dp ou sp. Um dp é um pixel independente de densidade que corresponde ao tamanho físico de um pixel em 160 dpi. Um sp é a mesma unidade base, mas é dimensionado pelo tamanho de texto preferencial do usuário (é um pixel independente de escala) e deve ser usado ao definir o tamanho do texto (mas nunca para tamanhos de layout).

Vídeo

DesignBytes: Pixels independentes de densidade


Por exemplo, ao especificar o espaçamento entre duas exibições, use dp em vez de px:

<Button android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/clickme"
    android:layout_marginTop="20dp" />

Ao especificar o tamanho do texto, sempre use sp:

<TextView android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textSize="20sp" />

Fornecer bitmaps alternativos

Como o Android é executado em dispositivos com uma ampla variedade de densidades de tela, você deve sempre oferecer recursos de bitmap adaptados a cada um dos tipos de densidade generalizados: densidade baixa, média, alta e extra-alta. Isso ajudará a obter uma boa qualidade gráfica e desempenho em todas as densidades de tela.

Para gerar essas imagens, você deve iniciar com o recurso bruto em formato de vetor e gerar as imagens para cada densidade usando a seguinte escala de tamanho:

Isso significa que, se você gerar uma imagem 200x200 para dispositivos xhdpi, deverá gerar o mesmo recurso em 150x150 para hdpi, 100x100 para mdpi e, por fim, uma imagem 75x75 para dispositivos ldpi .

Em seguida, coloque os arquivos de imagem gerados no subdiretório adequado em res/ e o sistema escolherá automaticamente o correto com base na densidade da tela do dispositivo onde o aplicativo está sendo executado:

MyProject/
  res/
    drawable-xhdpi/
        awesomeimage.png
    drawable-hdpi/
        awesomeimage.png
    drawable-mdpi/
        awesomeimage.png
    drawable-ldpi/
        awesomeimage.png

Assim, sempre que você referenciar @drawable/awesomeimage, o sistema selecionará o bitmap apropriado baseado no dpi da tela.

Coloque os ícones da tela inicial nas pastas mipmap/.

res/...
    mipmap-ldpi/...
        finished_launcher_asset.png
    mipmap-mdpi/...
        finished_launcher_asset.png
    mipmap-hdpi/...
        finished_launcher_asset.png
    mipmap-xhdpi/...
        finished_launcher_asset.png
    mipmap-xxhdpi/...
        finished_launcher_asset.png
    mipmap-xxxhdpi/...
        finished_launcher_asset.png

Observação: Todos os ícones da tela inicial devem ser colocados nas pastas res/mipmap-[density]/ em vez das pastas drawable/ para garantir que os aplicativos da tela inicial usem o ícone de melhor resolução. Para obter mais informações sobre o uso de pastas mipmap, consulte Visão geral do gerenciamento de projetos.

Para obter mais dicas e orientações sobre a criação de ativos de ícones para aplicativos, consulte Diretrizes para o projeto de ícones.

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Siga o Google Developers no WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience. (Dec 2017 Android Platform & Tools Survey)