Finalmente criei uma estrutura que manipula layouts e ícones para telas múltiplas.
O Android generaliza as telas do dispositivo em categorias com base em dois parâmetros:
- Tamanho da tela, o tamanho físico da tela (medido na diagonal)
- Densidade da tela, a densidade física de pixels da tela (em pixels por polegada ou ppi) `
Para determinar o tamanho e a densidade da tela rapidamente, instale o aplicativo " Qual é o meu tamanho " para Android.
Tamanho da tela
O Android define quatro tamanhos de tela generalizados:
Qualifier Size
small ~3 inches (approx)
normal ~4 inches (approx)
large Exceeds 4 inches
xlarge Exceeds 7 inches
- A maioria dos telefones é classificada como pequena ou normal (cerca de 3 a 4 polegadas na diagonal). Mas agora, existem muitos telefones com tela grande, como Galaxy S4, HTC One, Xperia Z
- Um pequeno tablet como o Samsung Galaxy Tab é classificado como grande (maior que 4 polegadas)
- Extra-grande se aplica a dispositivos grandes, por exemplo, tablets grandes
O Android define quatro densidades de tela generalizadas:
Qualifier Description Nominal value
ldpi low density 120 ppi
mdpi medium density 160 ppi
hdpi high density 240 ppi
xhdpi extra high density 320 ppi
Tipicamente:
- o tamanho da tela tem maior impacto nos layouts do seu aplicativo
- a densidade da tela tem maior impacto em sua imagem e recursos gráficos
Está listado aqui a diferença percentual da tela do dispositivo
- Ldpi- 75%
- Mdpi- 100% (base de acordo com o site do desenvolvedor Android)
- Hdpi- 150%
- XHdpi- 200%

Mas, como sabemos agora, a maioria dos dispositivos vem com 480X800, então considero isso como um dispositivo baseado, então nosso novo cálculo será assim
- Ldpi- 50%
- Mdpi- 66,67%
- HDpi- 100%
- XHdpi- 133,33%
o que significa que o primeiro ícone e design serão criados apenas para 480X800 e depois para os restantes (ou seja, Ldpi, Mdpi, Xhdpi).
Existem imagens que são comuns a todos os layouts e devem ser uniformes em cor e formato (sem forma complexa, sem curva), portanto, para este tipo de imagem estamos criando 9patchpara ser colocada na pasta “drawable (sem sufixo)”. Para criar a imagem 9Patch, você pode usar DrawNinePatch ou BetterNinePatch
Agora é só renomear suas imagens com base nos padrões do Android e completar seu aplicativo com hdpie depois pegar a drawable-hdpipasta e abrir o Adode Photoshop (recomendado) criar ação de vários tamanhos (basta alterar o tamanho de acordo com a proporção de porcentagem) uma vez que a ação foi criada para todos os tamanhos, então basta fazer Automatize em lote e forneça a origem (drawable-hdpi) e o destino (drawable-ldpi, drawable-mdpi, drawable-xdpi).
A razão pela qual insisto que você use o Photoshop porque ele irá redimensionar automaticamente sua imagem com Actions e mais um ponto positivo é que você não precisa renomear o arquivo (ele atribuirá o mesmo nome do original).
depois de concluir a criação de todas as imagens, atualize seu projeto e teste-o.
Às vezes, pode haver a possibilidade de que o layout que suporta a tela (xhdpi, hdpi, mdpi) seja cortado em uma tela pequena (ldpi), portanto, para lidar com isso, basta criar uma pasta Layout separada (layout-small) para ele e adicionar ScrollView(principalmente). É isso aí.
Comprimidos Os
comprimidos são classificados em dois tamanhos.
- 7 "(1024X (600-48 (barra de navegação))) = 1024X552 (extraível grande)
- 10 "(1280X (800-48 (barra de navegação))) = 1280X752 (drawable-xlarge)
Para isso, precisamos criar imagens para a tela e colocá-las de acordo
Portanto, em suma, teremos essa pasta em nosso aplicativo para suportar várias telas.
drawable
drawable-ldpi
drawable-mdpi
drawable-hdpi
drawable-xhdpi
drawable-large
drawable-xlarge
será mais combinação de qualificador com Screen size and Screen density
drawable-large-ldpi
drawable-large-mdpi
drawable-large-hdpi
drawable-large-xhdpi
mais qualificador com Screen density and Version
drawable-ldpi-v11
drawable-mdpi-v11
drawable-hdpi-v11
drawable-xhdpi-v11
e mais qualificador com Screen size and Version
drawable-large-v11
drawable-xlarge-v11
e mais qualificador com Smallest width concept(SW)
drawable-sw???dp
Além disso, no Android V3.0 Honeycomb, eles introduziram um novo conceito SW(smallest width)em que os dispositivos são categorizados na largura da tela, então, se estivermos criando uma pasta chamada drawable-sw360dp, o dispositivo com 720dp (largura ou altura) usará os recursos desta pasta.
por exemplo, para encontrar o Samsung Galaxy S3 dp para sufixo para drawable-sw? dp
Com referência ao cálculo DP , se você deseja apoiar seu layout ou drawable para S3, então o cálculo diz
px = largura do dispositivo = 720
dpi = densidade do dispositivo = 320
fórmula dada
px = dp * (dpi / 160)
trocando fórmula porque temos o valor de px
dp = px / (dpi / 160)
agora colocando valor,
dp= 720 / (320/160);
dp=360.
então drawable-sw360dpfará o trabalho
Obtenha a configuração do dispositivo do GsmArena
Sameway. Você também pode criar uma pasta de acordo com a versão da API do Android do dispositivo, ou seja, drawable-hdpi-v11`, então o dispositivo que está tendo API11 e é Hdpi então usará esses recursos.
Dicas adicionais:
Use layouts relativos, dp, sp e mm
unidades dp - pixels independentes de dispositivo normalizados para 1 pixel físico em uma tela de 160 ppi, ou seja, densidade média. Escalonado em tempo de execução. Use para dimensões de elemento de tela
unidades sp - pixels dimensionados, especificados como valores de ponto flutuante, com base em unidades dp, mas dimensionados adicionalmente para a configuração de preferência de tamanho de fonte do usuário. Escalonado em tempo de execução. Use para tamanhos de fonte
você deve sempre usar RelativeLayout para layouts; AbsoluteLayout está obsoleto e não deve ser usado.
Use formatos de imagem apropriados - PNG versus JPEG
Android "prefers" PNG for bitmap image files, "accepts" JPEG, and "discourages" GIF.
No entanto, PNG e JPEG não são equivalentes. Eles têm diferentes compromissos de qualidade e PNG nem sempre é o melhor:
JPEG pode oferecer até 50% de redução no tamanho do arquivo em relação ao PNG, o que é significativo se o seu aplicativo fizer uso intensivo de imagens
Um JPEG com "perdas" de qualidade superior pode parecer melhor do que um PNG "sem perdas" altamente compactado, para o mesmo tamanho de arquivo
Adicione rótulos às suas imagens e gráficos para depuração
Use o elemento suportes-telas
Configure seus emuladores com valores reais de dispositivos
Convencionalmente, os sistemas de desktop exibem 72ppi (Mac) ou 96ppi (Windows, Linux). Em comparação com o celular, as telas de desktop são sempre de baixa densidade.
Sempre configure seus emuladores Android para imitar os valores reais do dispositivo e sempre os configure para dimensionar para emular a densidade do dispositivo.
No Eclipse, é fácil criar vários emuladores (na barra de menus do Eclipse, selecione Window> AVD Manager> New ) configurados com valores para dispositivos reais:
Nomeie o emulador para o dispositivo real que está emulando Especifique resolução, não use tamanhos genéricos integrados Defina a densidade do dispositivo para corresponder ao dispositivo real (no painel Hardware, defina a propriedade LCD abstraída para a densidade real, sempre um valor inteiro)
Ao iniciar o dispositivo, sempre selecione Ajustar a exibição ao tamanho real e digite a dimensão real da tela em polegadas.
Se você não definir a densidade do dispositivo, o emulador padroniza para densidade baixa e sempre carrega recursos específicos do ldpi. A resolução (dimensões em pixels) estará correta, mas seus recursos de imagem dependentes de densidade não serão exibidos como pretendido.
Obviamente, nada que você fizer irá reproduzir a qualidade de imagem de alta densidade em uma tela de desktop de densidade mais baixa.
Aqui estão os dados coletados durante um período de 7 dias encerrado em 1º de outubro de 2012. Para ver as estatísticas mais recentes sobre a versão da plataforma Android, acesse aqui
Com base no tamanho da tela

Com base na densidade da tela
