1

このコードを使用して画面解像度を取得しています。

//View v
Context ctx = v.getContext();
WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;

しかし、私は間違った画面サイズを取得します:

06-03 05:25:47.861: I/Screen Size(5267): 1024x552

私のタブレットには、解像度 1024x600 の 7 インチの画面があります。欠けている 48 ピクセルは、システム バーで使用されているものだと思いますが、非表示にしても、その画面サイズになります。

私はAndroid 4.1.1を使用しているためgetRealSize()、API17で追加されたメソッドを使用できません。正しい画面サイズを取得するにはどうすればよいですか?

更新:私のパネルの密度は 1.0 と変わらないため、質問の重複ではありません。サイズは正しいはずです。

Update2:次のコードが機能しました (13 から 16 の間の API のみ)。600x1024を返すので、画面の向きを確認して適切な幅/高さを取得してください

Method mGetRawW = Display.class.getMethod("getRawWidth");
Method mGetRawH = Display.class.getMethod("getRawHeight");
int nW = (Integer)mGetRawW.invoke(dp);
int nH = (Integer)mGetRawH.invoke(dp);

ここから取得しました:Android DisplayMetricsがICSのピクセル単位で誤った画面サイズを返す

4

2 に答える 2