円にいくつかのテキストがあります。ユーザーがテキストをタッチしてドラッグできるようにし、円に沿って移動するように制限してもらいたいのですが...
Canvasを使用してここまで到達しましたが、この方法でタッチに応答する方法がわかりません。私は最初からやり直して、キャンバス以外のアプローチを取ることに反対していません。
どうすればこれを実現できますか?擬似コードをいただければ幸いです。
円にいくつかのテキストがあります。ユーザーがテキストをタッチしてドラッグできるようにし、円に沿って移動するように制限してもらいたいのですが...
Canvasを使用してここまで到達しましたが、この方法でタッチに応答する方法がわかりません。私は最初からやり直して、キャンバス以外のアプローチを取ることに反対していません。
どうすればこれを実現できますか?擬似コードをいただければ幸いです。
私は間違っているかもしれませんが、これがキャンバスであることを考えると. 次に、どのテキストがタッチされたかを検出するのがあなたの仕事です。
ビューに onTouchListener を設定すると、ACTION_DOWN イベントのイベント座標が取得されます。触れたテキストを確認して取得します。ない場合は false を返します。それ以外の場合は、true を返します。
ここで、ユーザーが指を動かすと、ACTION_MOVE でさらにイベントを受け取ります。その場合、このイベントと最後のイベントの違いに応じて、選択したテキストを移動したいと思うでしょう。テキストの新しい位置を計算したらinvalidate()
、再描画を強制する を呼び出します。
最後に、ユーザーが動きを止めると、ACTION_UP でイベントを受け取ります。その場合、テキストを元の位置に戻すか、必要に応じて配置する必要があります。