Определить устройства HighDefinition

Как определить устройство с HD-экраном, такое как Asus HD?

Я провел некоторое исследование и нашел некоторые параметры, по которым я пытаюсь это вычислить.

Где первая информация от GSM арены (размер и ppi) и DisplayMetrics, собранные с устройства через getDisplay(). GetDisplayMetrics();

Asus HD - 1920 x 1200 pixels, 10.1 inches (~224 ppi pixel density) - DisplayMetrics{density=1.5, width=1920, height=1128, scaledDensity=1.5, xdpi=159.89508, ydpi=159.58115}
GTab - 800 x 1280 pixels, 10.1 inches (~149 ppi pixel density) - DisplayMetrics{density=1.0, width=800, height=1280, scaledDensity=1.0, xdpi=160.15764, ydpi=160.0}
Xoom - 800 x 1280 pixels, 10.1 inches (~149 ppi pixel density) -  DisplayMetrics{density=1.0, width=1280, height=752, scaledDensity=1.15, xdpi=149.82489, ydpi=149.41176}
Xoom 2 ME - 800 x 1280 pixels, 8.2 inches (~184 ppi pixel density) - DisplayMetrics{density=1.0, width=1280, height=752, scaledDensity=1.0, xdpi=149.82489, ydpi=149.41176}
nexus 7 - 800 x 1280 pixels, 7.0 inches (~216 ppi pixel density)
nexus 7 2 - 1200 x 1920 pixels, 7.0 inches (~323 ppi pixel density)
Gnote II - 720 x 1280 pixels, 5.5 inches (~267 ppi pixel density)
Gnote - 800 x 1280 pixels, 5.3 inches (~285 ppi pixel density)
Gtab 7.7 - 800 x 1280 pixels, 7.7 inches (~196 ppi pixel density)
Gtab 7 - 600 x 1024 pixels, 7.0 inches (~170 ppi pixel density)

Я пытался использовать плотность в качестве параметра для его идентификации, но большинство устройств возвращают 1.0 (по крайней мере, Asus HD возвращает 1.5), но я не уверен, что могу положиться на эти значения.

Есть ли лучший подход, чтобы определить тогда?

1 ответ

Независимо от аргумента по поводу "что такое HD". Если вы хотите что-то на основе Denisty; Сделайте это с помощью квалификаторов ресурсов:

В файлах:

/values-xxxhdpi/hd.xml
/values-xxhdpi/hd.xml
/values-xhdpi/hd.xml

hd.xml:

<resources>
  <bool name="isWhatIClassifyAsHD">true</bool>
</resources>

(установка ниже необязательна, так как они все равно будут ложными).

/values/hd.xml
/values-mdpi/hd.xml
/values-hdpi/hd.xml

hd.xml:

<resources>
  <bool name="isWhatIClassifyAsHD">false</bool>
</resources>

Тогда в вашей деятельности:

 boolean isHD = getResources().getBoolean(R.bool.isWhatIClassifyAsHD);
Другие вопросы по тегам