いくつかのビットマップ画像を含むキャンバスがあります。ユーザーが任意の画像に触れて移動することで、キャンバス内の画像を移動できるようにしたいと考えています。
現在、私のアプリにはキャンバスと画像ビューがあります。キャンバスが更新されるたびに、画像ビューも更新されます。
どうすればそれを行うことができますか、SurfaceView などを使用する必要がありますか?
ありがとう
いくつかのビットマップ画像を含むキャンバスがあります。ユーザーが任意の画像に触れて移動することで、キャンバス内の画像を移動できるようにしたいと考えています。
現在、私のアプリにはキャンバスと画像ビューがあります。キャンバスが更新されるたびに、画像ビューも更新されます。
どうすればそれを行うことができますか、SurfaceView などを使用する必要がありますか?
ありがとう
画像とその位置 (およびレイヤーの順序) のリストを維持し、それらを適切に表示するカスタム View サブクラスを実装する必要があります。これを行うのは非常に簡単です。サブクラスは、View.onDrawをオーバーライドして独自の描画動作を実装することから始めなければなりません。
次の部分はView.onTouchEventの実装です。MotionEventアクションに応じて、指定された座標の下にある画像を見つけて ACTION_DOWN に応答し、それに応じてその画像の位置を変更するために ACTION_MOVE に応答する必要があります。表示の更新をトリガーするには、画像の位置を変更した後にView.invalidateを呼び出すだけで、最終的にメソッドに流れますonDraw
。