1

私はAndroid用のアプリをいくつか作成しましたが、グラフィックをそれほど使用したものはありませんでした。私は今、実際のゲームを作ろうとしています。キャンバス上にいくつかのビットマップがあります。私の問題は、それらの位置をどこで初期化するかわからないことです。OnTouchイベントでは、ビットマップが画面の外に外れないようにしたいです。たとえば、1つのビットマップを初期化します。

canvas.drawBitmap(glider.getGraphic(), 30, 20, null);

20と30は任意でした。しかし、screen.getWidth()のようなものを記述できるようにしたいので、ビットマップが画面の境界に対してどこにあるかを正確に把握できます。開発者向けリファレンスでこれを見つけることができません。

4

1 に答える 1

2

画面のサイズを取得するだけの場合は、DisplayMetricsクラスを確認してください。次のようなインスタンスと測定値を取得できます。

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int screenHeight = metrics.heightPixels;
int screenWidth = metrics.widthPixels;

これは絶対的な画面サイズであることに注意してください。フルスクリーンゲームを実行している場合、これは正常に機能しますが、そうでない場合は、通知バーのサイズ、場合によってはタイトルバーのサイズに注意する必要があります。その場合は、SurfaceView自体の高さを取得して、それを計算に使用する方がよい場合があります。

于 2011-01-07T15:53:46.873 に答える