画面サイズは 600 (幅) x 1024 (高さ) です。現在の幅 600 を取得していますが、高さ 976 を誤って取得しています (画面を回転させていない場合)。現在の幅は 1024 ですが、間違って高さ 552 を取得しています (画面が回転している場合)。
int rowPixelWidth = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getWidth();
int rowWidth = (int)Math.floor(rowPixelWidth / this.getResources().getDisplayMetrics().density);
int rowPixelheight = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getHeight();
int rowheight = (int)Math.floor(rowPixelheight / this.getResources().getDisplayMetrics().density);
Log.d("rowWidth","rowWidth"+rowWidth);
Log.d("rowheight","rowheight"+rowheight);
-------------------------------------------------------------
<uses-sdk
android:minSdkVersion="3"
android:targetSdkVersion="8" />
<supports-screens android:anyDensity="true"/>
-------------------------------------------------------------
このコードの何が問題になっていますか?
一般的な画面幅の数値を次に示します。
- 320dp: 一般的な電話画面 (240x320 ldpi、320x480 mdpi、480x800 hdpi など)。
- 480dp: Streak のようなトゥイナー タブレット (480x800 mdpi)。
- 600dp: 7 インチ タブレット (600x1024 mdpi)。
- 720dp: 10 インチのタブレット (720x1280 mdpi、800x1280 mdpi など)。
現在の幅を取得しますが、すべてのデバイスの現在の高さを取得しません ((320x480 画面なし)。
画面のサイズをピクセルで取得するコードを試してみましたが、同じ問題が発生しました。