Intereting Posts
Android: Отмените задачу Async Android Создайте учетную запись Sip Programmatically Возможно ли создать ссылку «share on Facebook», которая откроет собственное приложение Facebook на Android / iOS / mobile вместо диалога веб-ресурса? Кнопки без рамки Android Поделиться текстом на Facebook из приложения Android через ACTION_SEND Android: listview в listview Android classcastexception при запуске активности Как создать файл – включая папки – для заданного пути? Как переопределить чертежи, определенные в проекте библиотеки Android? Управление навигационной панелью и обратной кнопкой панели инструментов из фрагмента в андроиде Как установить несколько интервалов текста TextView на один и тот же частичный текст? Отключить жестов салфетки, который открывает навигационный ящик в android Не удается разрешить символ @ drawable / ic_launcher Не удалось получить соединение с заводским клиентом Где я могу найти исходный код Android в Интернете?

Как проверить устройство Android – это экран HDPI или экран MDPI?

Я хочу проверить это, чтобы получить различные изображения через Интернет. Как это сделать?

Solutions Collecting From Web of "Как проверить устройство Android – это экран HDPI или экран MDPI?"

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 

Вы можете проверить плотность экрана с помощью:

 switch (getResources().getDisplayMetrics().densityDpi) { case DisplayMetrics.DENSITY_LOW: // ... break; case DisplayMetrics.DENSITY_MEDIUM: // ... break; case DisplayMetrics.DENSITY_HIGH: // ... break; case DisplayMetrics.DENSITY_XHIGH: // ... break; } 

EDIT Имейте в виду, что по мере развития Android другие значения должны быть включены в случаи switch . Начиная с этого редактирования, это включает DisplayMetrics.DENSITY_TV и DisplayMetrics.DENSITY_XXHIGH . Проконсультируйтесь с документами для получения последней информации; Я не собираюсь продолжать этот ответ.

На некоторых устройствах (моя Galaxy Tab3) плотность и плотность Dpi возвращают странные значения, такие как 1.33 (плотность), 213 (плотность Dpi). Поэтому я хочу добавить этот флаг:

<Item type = "bool" name = "is_mdpi"> [bool] </ item>
<Item type = "bool" name = "is_hdpi"> [bool] </ item>
<Item type = "bool" name = "is_xhdpi"> [bool] </ item>
<Item type = "bool" name = "is_xxhdpi"> [bool] </ item>

К 4 файлам values.xml, поместите их под соответствующие res / values- [xxx] / folders.

Из приведенных выше ответов я объединил их и создал следующую функцию:

  public static String getDeviceDensity(Context context){ String deviceDensity = ""; switch (context.getResources().getDisplayMetrics().densityDpi) { case DisplayMetrics.DENSITY_LOW: deviceDensity = 0.75 + " ldpi"; break; case DisplayMetrics.DENSITY_MEDIUM: deviceDensity = 1.0 + " mdpi"; break; case DisplayMetrics.DENSITY_HIGH: deviceDensity = 1.5 + " hdpi"; break; case DisplayMetrics.DENSITY_XHIGH: deviceDensity = 2.0 + " xhdpi"; break; case DisplayMetrics.DENSITY_XXHIGH: deviceDensity = 3.0 + " xxhdpi"; break; case DisplayMetrics.DENSITY_XXXHIGH: deviceDensity = 4.0 + " xxxhdpi"; break; default: deviceDensity = "Not found"; } return deviceDensity; } 

Теперь, на каком устройстве вы хотите получить информацию о плотности и какую папку она будет использоваться, просто добавьте вышеуказанный метод в эту активность и добавьте следующую строку в onCreate

  @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); Log.d("Screen Density: ", Helper.getDeviceDensity(this)); }