Android - Resolução da tela e densidade de tela
-
25-09-2019 - |
Pergunta
De acordo com os recursos de gerenciamento (imagens) na versão> Android 1.6, precisamos manter a imagem de resoluções diferentes na pasta Drawable-HDPI, Drawable-MDPI e Drawable-LPI, em particular.
E de acordo com esta página: http://developer.android.com/guide/practices/screens_support.html ,
Na seção de baixa densidade - existem três resoluções utilizadas: 240*320, 240x400, 240x432 para a tela pequena, tela normal, tela grande, particularmente.
Da mesma maneira para a seção de densidade média - existem três resoluções usadas: 320x480, 480x800, 480x854 para a tela pequena, tela normal, tela grande, particularmente.
e da mesma maneira para a alta densidade ........
Mas estou confuso aqui:
(1) Como faço para saber que, se é usado uma tela pequena, normal ou grande, quero dizer, existe alguma maneira de saber?
(2) Como faço para saber que tipo de densidade estou usando?
(3) e na pasta Drawable-HDPI, Drawable-MDPI, Drawable-LDPI, qual imagem da resolução devemos manter particularmente?
Por favor, compartilhe seu conhecimento.
Solução
Existem chamadas específicas de API Android que podem, em tempo de execução, informar qual densidade e (pequeno/grande/normal) tamanho da tela um aparelho possui. No entanto, como desenvolvedor, não precisamos nos preocupar com aparelhos individuais. Tudo o que precisamos fazer é ter ativos LDPI/MDPI/HDPI e layouts pequenos/normais/grandes no APK. O Android lida internamente tudo.
Não se esqueça de ter uma compreensão aprofundada de como o Android determina quais ativos usar e alias aqui.
Outras dicas
Por que você quer saber a densidade real? É o negócio do Android. Mas tenho certeza de que há uma maneira de recuperar essas informações.
Para o desenvolvimento, coloquei tudo no HDPI-Folder. Eu também poderia colocar tudo em uma pasta general desenhada.
Na época em que você publica, você pode decidir se deseja fornecer recursos já reduzidos para LDPI e MDPI. No entanto, isso não é necessário.
Atualizar: Recuperar a densidade real com esta classe e Melhores Práticas
Atualização 2: Encontrei um vídeo de 25 minutos da Motorola discutindo todas essas questões: Trabalhando com várias telas
1) Altere o conteúdo do layout em diferentes pastas, ou seja, um layout, largo de layout, etc. agora teste-o em um emulador diferente com uma resolução de tela diferente.
2) para descobrir a densidade do uso do dispositivo
Log.d("Density", "" + (getResources().getDisplayMetrics().density));