我的视野更加开阔。
在扩展 View 内,有一个按钮。我想要一个手势监听器,这样当触摸按钮并向右/向左滑动时,按钮将跟随手指向右/向左移动。
我实现的是在主要 Activity 中,
主要 Activity :
@Override
public boolean onTouchEvent(MotionEvent event)
{
int x = (int)event.getX();
int y = (int)event.getY();
if (y > viewHeight - 250)
{
game_collecting_ex_view.get_touched_x(x);
}
switch (event.getAction())
{
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_UP:
}
return false;
}
扩展 View :
public void get_touched_x (int x)
{
boy_x = x;
image_boy.setX(boy_x);
image_boy.setY(viewHeight - BOY_HEIGHT);
}
问题:
这样,当我按下按钮以外的任何地方时,按钮就会跟随手指向左或向右移动。但如果按下按钮,它不会移动。
如何修改?谢谢!
最佳答案
我终于成功实现了onTouch
的ACTION_MOVE
如下,使按钮成为触摸和拖动:
button_test= (Button) findViewById(R.id.button_test);
button_test.setOnTouchListener(new OnTouchListener()
{
private float x, y;
private int mx, my;
public boolean onTouch(View v, MotionEvent event)
{
switch(event.getAction())
{
case MotionEvent.ACTION_DOWN:
x = event.getX();
y = event.getY();
case MotionEvent.ACTION_MOVE:
mx = (int)(event.getRawX() - x);
my = (int)(event.getRawY() - 50 - y);
button_test.setX(mx);
button_test.setY(my);
break;
}
return true;
}});
关于android:按下按钮并跟随手势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20444211/