Quero verificar isso para buscar imagens diferentes pela Internet. Como fazer isso?
121
density = getResources().getDisplayMetrics().density;
// return 0.75 if it's LDPI
// return 1.0 if it's MDPI
// return 1.5 if it's HDPI
// return 2.0 if it's XHDPI
// return 3.0 if it's XXHDPI
// return 4.0 if it's XXXHDPI
Você pode verificar a densidade da tela com:
EDIT Saiba que, à medida que o Android evolui, outros valores devem ser incluídos nos
switch
casos. A partir desta edição, isso incluiDisplayMetrics.DENSITY_TV
eDisplayMetrics.DENSITY_XXHIGH
. Consulte os documentos para obter as informações mais recentes; Não vou me incomodar em manter esta resposta.fonte
density
como sugerido por sted.)DENSITY_XXHIGH
. Eu adicionei um aviso à resposta para cobrir todos os casos futuros. :)A partir de 2018, você pode usar o método abaixo -
Mas como o @Ted apontou, consulte sempre os documentos oficiais antes de usar
fonte
A partir das respostas acima, eu as combinei e criei a função abaixo:
Agora, em qual dispositivo você deseja obter as informações de densidade e qual pasta será usada, basta adicionar o método acima nessa atividade e adicionar a linha abaixo em onCreate
fonte
Para o React Native verificar qual o tamanho atualmente do dispositivo
fonte
PixelRatio.get()
retornará um intervalo de valores, dependendo do tamanho da exibição definido nas configurações do Android e do dpi. Esses valores não coincidirão com os valores exatos que você definiu.Em alguns dispositivos (o meu é o Galaxy Tab3), a densidade e a densidadeDpi retornam valores estranhos como 1,33 (densidade), 213 (densidadeDpi). Então, minha solução é adicionar estes sinalizadores:
para 4 arquivos values.xml, coloque-os em res / values- [xxx] / folders correspondentes.
fonte