我正在使用此代码来获取我的屏幕分辨率:
//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
我的平板电脑有一个 7" 屏幕,分辨率为 1024x600。我猜缺少的 48 像素是系统栏使用的像素,但即使隐藏它,我也能得到那个屏幕尺寸。
由于我使用的是 android 4.1.1,因此我无法使用getRealSize()
API17 中添加的方法。如何获得正确的屏幕尺寸?
更新:我的面板的密度与 1.0 没有什么不同,所以它不是问题重复。尺寸应该是正确的。
更新 2:以下代码有效(仅适用于 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);