我正在编写一个虚拟操纵杆小部件,它由一个作为可点击区域的大圆圈和一个代表实际操纵杆的小圆圈组成。为了使操作更容易一点,我希望用户能够触摸大圆圈上的任何位置,而小圆圈将跳转到触摸的位置。如果用户拖动手指,我希望小圆圈跟随。当小圆圈被释放时,我希望它跳回大圆圈中心的原始位置。我正在使用两个圆圈水平和垂直居中的相对布局。
这是我正在使用的触摸监听器,现在它主要按我的意愿工作,除了较小的圆圈出现在触摸位置的左侧。我不知道如何让它在释放时弹回中心。
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;
}
};