我在Android中创建了一个图像视图,并尝试通过用户的手指使其移动。
我需要处理2个事件,一个是我想要移动ImageView,另一个是长按它。
但是,我遇到一个问题,当我移动ImageView时,我的手指总是在屏幕上。这也意味着将调用setOnClickListener()。 因此,在移动对象时,我无法在setOnClickListener上执行此操作。
我想得到你的建议和咨询。如果可能的话,我会特别感谢你。
答案 0 :(得分:0)
请参阅MotionEvent
:
onTouchEvent(MotionEvent touchevent)
有几种行为被定义来区分事件,例如, ACTION_MOVE
或ACTION_DOWN
。见this example:
public boolean onTouchEvent(MotionEvent touchevent)
{
switch (touchevent.getAction())
{
case MotionEvent.ACTION_DOWN:
{
...
break;
}
case MotionEvent.ACTION_UP:
{
...
查找另一个示例here:
view.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
// do something
break;
case MotionEvent.ACTION_MOVE:
// do something else
break;
}
return false;
}
});