1

円にいくつかのテキストがあります。ユーザーがテキストをタッチしてドラッグできるようにし、円に沿って移動するように制限してもらいたいのですが...

Canvasを使用してここまで到達しましたが、この方法でタッチに応答する方法がわかりません。私は最初からやり直して、キャンバス以外のアプローチを取ることに反対していません。

どうすればこれを実現できますか?擬似コードをいただければ幸いです。

円のテキスト

4

1 に答える 1

2

私は間違っているかもしれませんが、これがキャンバスであることを考えると. 次に、どのテキストがタッチされたかを検出するのがあなたの仕事です。

ビューに onTouchListener を設定すると、ACTION_DOWN イベントのイベント座標が取得されます。触れたテキストを確認して取得します。ない場合は false を返します。それ以外の場合は、true を返します。

ここで、ユーザーが指を動かすと、ACTION_MOVE でさらにイベントを受け取ります。その場合、このイベントと最後のイベントの違いに応じて、選択したテキストを移動したいと思うでしょう。テキストの新しい位置を計算したらinvalidate()、再描画を強制する を呼び出します。

最後に、ユーザーが動きを止めると、ACTION_UP でイベントを受け取ります。その場合、テキストを元の位置に戻すか、必要に応じて配置する必要があります。

于 2012-12-20T23:33:12.383 に答える