Intereting Posts
Slide Toggle для Android Эквивалент NSLog для Android-разработчика с использованием Eclipse Получить UID Linux для Android-приложения Android-разрешения: телефонные звонки: состояние и идентификация телефона Использование аппаратного уровня в пользовательском представлении onDraw Больше пространства между строками в TextView Список файлов, сохраненных во внутреннем хранилище Как отправить электронную почту с приложением, используя только приложения электронной почты? Как скрыть значок действия share (который используется больше всего) рядом с поставщиком акций? Настройки Android Checkbox Не удается уловить событие нажатия кнопки кнопки панели инструментов Определение длинного нажатия в XML-макете, например, android: onClick делает Android VideoView не играет Портрет Ориентация Не удалось найти метод XXX, на который ссылается метод YYY Учебник по Google Гироскопу или пример кода

Как проверить устройство 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)); }