3

私はSurfaceView、SurfaceHolder、Canvasなどの標準パターンでAndroidゲームを開発しています。このゲームでは、キャンバス上に複数のビットマップを描画し、それらが触れられたかどうかを確認します。SurfaceViewのonTouchEvent()をオーバーライドでき、すべてのアイテムを直線的にウォークスルーして、タッチ座標にビットマップの1つの領域が含まれているかどうかを判断できることは承知していますが、自分で作業を簡単にできるかどうか疑問に思いました。

私の質問は次のとおりです。画面へのビットマップの描画を処理するクラスをandroid.Viewの子孫にして、SurfaceViewにアタッチし、クリックリスナーを登録して、クリックを自分で決定するプロセスを実行する必要がないようにすることはできますか?ビュー(ビットマップ)を自分でキャンバスに描画している場合、クリックリスナーは正確ですか?

さらに、Androidビュー階層をダウンさせてAndroidに不要な作業を行わせることで、すべてのビットマップをAndroidビューにすることで、パフォーマンスが低下する可能性がありますか?

ありがとう。

4

1 に答える 1

0

通常の Android ビューを SurfaceView にアタッチしたい場合、SurfaceView を使用するポイントは何ですか! Android ビュー システムに描画させるのではなく、自分で表面に描画できるように、SurfaceView が与えられます。したがって、「あなた」は自分で自分のタッチを追跡する必要があります。

純粋に OpenGL ベースの AOSP Gallery2 コードを参照して、タッチの処理にその設計を組み込むことができます。

于 2014-11-14T12:09:02.143 に答える