0

我在 Netbeans 中有一个项目,屏幕尺寸为 QVGA-L (240X320) 并在 WVGA800 (480X800) 中运行 AVD 首先我不确定两者之间有什么不同。但我真正的问题是实际的屏幕尺寸是 213X270 虽然当我输入这段代码时:

WindowManager windowManager = getWindowManager();
Display defaultDisplay = windowManager.getDefaultDisplay();
width  = defaultDisplay.getWidth();
height  = defaultDisplay.getHeight();

宽度 = 240 高度 = 320

但是当我再次按下右下角时,我从 onTouchListener 213X270 的 MotionEvent 得到

我做错了什么?

4

2 回答 2

0

只是猜测,但也许您需要获取应用程序上下文而不是本地上下文。

Context context = myContext.getApplicationContext();
WindowManager wm = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay(); 
width  = defaultDisplay.getWidth();
height  = defaultDisplay.getHeight();

我很想知道结果如何,因为我自己的应用程序中有类似的代码。:-) 所以,最好以后自己去玩。

于 2011-03-09T18:58:26.800 回答
0

我想也许你没有考虑顶部的通知栏和应用程序标题栏。如果您在 res/layout/filename.xml 中为您的应用设置了一个默认布局,其 id 为 main,您可以尝试使用它:

LinearLayout layout = (LinearLayout) findViewById(R.id.main);
int width = layout.getWidth();
int height= layout.getHeight();
于 2011-03-09T18:56:09.877 回答