1

如何识别具有 HD 屏幕的设备,例如 Asus HD?

我做了一些研究并找到了一些我试图计算的参数。

第一个信息来自 GSM arena(大小和 ppi)以及通过 getDisplay().getDisplayMetrics() 从设备收集的 DisplayMetrics;

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(至少华硕 HD 确实返回 1.5)但我不确定我是否可以依赖这些值。

那么有没有更好的鉴别方法呢?

4

1 回答 1

0

不管关于“什么是高清”的争论。如果你想要基于 Denisty 的东西;使用资源限定符执行此操作:

在文件中:

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

高清.xml:

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

(设置以下是可选的,因为它们无论如何都是错误的)。

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

高清.xml:

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

然后在您的活动中:

 boolean isHD = getResources().getBoolean(R.bool.isWhatIClassifyAsHD);
于 2013-07-27T00:05:08.230 回答