6

画面サイズは 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"/>
-------------------------------------------------------------

このコードの何が問題になっていますか?

一般的な画面幅の数値を次に示します。

  1. 320dp: 一般的な電話画面 (240x320 ldpi、320x480 mdpi、480x800 hdpi など)。
  2. 480dp: Streak のようなトゥイナー タブレット (480x800 mdpi)。
  3. 600dp: 7 インチ タブレット (600x1024 mdpi)。
  4. 720dp: 10 インチのタブレット (720x1280 mdpi、800x1280 mdpi など)。

現在の幅を取得しますが、すべてのデバイスの現在の高さを取得しません ((320x480 画面なし)。

画面のサイズをピクセルで取得するコードを試してみましたが、同じ問題が発生しました。

4

2 に答える 2

0

上記のコードを使用した画面の高さには、下部に幅 48 ピクセルの Android ボタン (ホーム、戻る、最近のアプリ) が含まれていません。その結果、画面の高さは 1024-48 = 976 になります。

上記の関数は、アプリが表示される領域を提供します。上部の通知バーを非表示にするフル スクリーン アプリとしてアプリを作成することは可能ですが、下部の Android ボタン バー (ホーム、戻る、最近のアプリ) を非表示にすることはできません。したがって、利用できる最大の画面スペースは 1024-48=976 ピクセルです。

ただし、一部の携帯電話では Android ボタンが画面の一部ではありません。そのような場合は、1024 ピクセルの画面全体を使用できます。

于 2013-04-30T11:51:09.473 に答える