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 9patch
para 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 hdpi
e depois pegar a drawable-hdpi
pasta 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-sw360dp
fará 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