2013-07-26 102 views
1

如何識別具有高清屏幕的設備,如華碩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(至少華碩HD不會返回1.5),但我不知道,我可以依靠這些值。

還有什麼更好的方法可以確定嗎?

+0

你是如何定義 「高清屏」? – CommonsWare

+0

其實,對我來說是一個設備上的ppi是非常高的(因此圖像確實看起來更好,應該在更高的分辨率) –

+0

而這並不意味着定位xhdpi設備,因爲這些設備仍然可能不是高清(如Galaxy Tab 10.1和Motorola Xoom)。 –

回答

0

不管「什麼是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); 
+0

嗯..漂亮的解決方法 –