Я хочу проверить это, чтобы получать разные изображения через Интернет. Как это сделать?
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
Вы можете проверить плотность экрана с помощью:
ИЗМЕНИТЬ Имейте в виду, что по мере развития Android в
switch
кейсы должны быть включены другие значения . На момент редактирования сюда входятDisplayMetrics.DENSITY_TV
иDisplayMetrics.DENSITY_XXHIGH
. За последней информацией обращайтесь к документации ; Я не собираюсь утруждать себя этим ответом.источник
density
как предлагает SteD.)DENSITY_XXHIGH
. Я добавил к ответу отказ от ответственности, чтобы охватить все будущие случаи. :)По состоянию на 2018 год вы можете использовать метод ниже -
Но, как указал @Ted, всегда консультируйтесь с официальными документами перед использованием
источник
Из приведенных выше ответов я объединил их и создал следующую функцию:
Теперь, на каком устройстве вы хотите получить информацию о плотности и в какой папке оно будет использоваться, просто добавьте указанный выше метод в это действие и добавьте строку ниже в onCreate
источник
Чтобы React Native мог проверить текущий размер устройства.
источник
PixelRatio.get()
вернет диапазон значений в зависимости от размера дисплея, установленного в настройках Android, и dpi. Эти значения не будут совпадать с точными значениями, которые вы записали.На некоторых устройствах (у меня Galaxy Tab3) и density, и densityDpi возвращают странные значения, такие как 1,33 (плотность), 213 (densityDpi). Итак, мое решение - добавить этот флаг:
в 4 файла values.xml, поместите их в соответствующие папки res / values- [xxx] /.
источник