このコードを使用して画面解像度を取得しています。
//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);