android:按下按钮并跟随手势
Posted
技术标签:
【中文标题】android:按下按钮并跟随手势【英文标题】:android: button pressed and to follow gesture 【发布时间】:2013-12-07 17:20:45 【问题描述】:我有一个扩展视图。
在扩展视图中,有一个按钮。我想要一个手势监听器,这样当按钮被触摸并向右/向左滑动时,按钮将跟随手指向右/向左。
我实现的是在主要活动中,
主要活动:
@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;
扩展视图:
public void get_touched_x (int x)
boy_x = x;
image_boy.setX(boy_x);
image_boy.setY(viewHeight - BOY_HEIGHT);
问题:
这样,当我按下按钮以外的任何地方时,按钮都会跟随手指向左或向右移动。但是,如果按下按钮,它就不会移动。
如何修改?谢谢!
【问题讨论】:
如何使用public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
??我用谷歌搜索过,大多数人都在使用onFling
【参考方案1】:
我终于设法实现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:按下按钮并跟随手势的主要内容,如果未能解决你的问题,请参考以下文章