0

画面サイズがQVGA-L(240X320)であり、AVDをWVGA800(480X800)で実行しているというNetbeansのプロジェクトがあります。まず、2つの違いがわかりません。しかし、私の本当の問題は、実際の画面サイズが 213X270 であることですが、このコードを配置したとき:

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

幅 = 240 高さ = 320

しかし、再びボタンの右隅を押すと、 onTouchListener 213X270 の MotionEvent から取得します

私は何を間違っていますか?

4

2 に答える 2

0

上部の通知バーとアプリケーションのタイトル バーを考慮していない可能性があります。res/layout/filename.xml に main の ID を持つアプリのデフォルト レイアウト セットがある場合は、代わりにこれを使用してみてください。

LinearLayout layout = (LinearLayout) findViewById(R.id.main);
int width = layout.getWidth();
int height= layout.getHeight();
于 2011-03-09T18:56:09.877 に答える
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 に答える