1

Asus HD などの 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 を返します) が、これらの値に依存できるかどうかはわかりません。

それを特定するためのより良いアプローチはありますか?

4

1 に答える 1

0

「HDとは何か」という議論に関係なく。Denisty に基づいたものが必要な場合。リソース修飾子でそれを行います:

ファイル内:

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

hd.xml:

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

(いずれにせよ false になるため、以下の設定はオプションです)。

/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);
于 2013-07-27T00:05:08.230 に答える