我使用这个代码让我的屏幕分辨率:Android的错屏幕尺寸
//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" 屏幕,1024×600分辨率。我猜想缺少的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);
我把它从这里:Android DisplayMetrics returns incorrect screen size in pixels on ICS
我也尝试过度量标准仍然会得到错误的大小。 – Vektor88
我在这个问题上增加了另一个尝试 – JRowan