クリック可能な領域としての大きな円と実際のジョイスティックを表す小さな円で構成される仮想ジョイスティックウィジェットを作成しています。操作を少し簡単にするために、ユーザーが大きい方の円のどこにでもタッチできるようにしたいのですが、小さい方の円はタッチした場所にジャンプします。ユーザーが指をドラッグした場合、小さな円をたどります。小さな円が解放されたら、大きな円の中心にある元の位置にジャンプして戻します。両方の円が水平方向と垂直方向の中央に配置された相対レイアウトを使用しています。
これが私が使用しているタッチリスナーです。タッチがある場所の左側に小さな円が表示されることを除いて、現在はほとんど希望どおりに機能しています。リリース時に中央にスナップバックさせる方法がわかりません。
OnTouchListener touchListener = new OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent event)
{
// TODO Auto-generated method stub
status.setText("X: " + event.getX() + ", Y: " + event.getY());
knob.setX(event.getX());
knob.setY(event.getY());
return false;
}
};