gpt4 book ai didi

android - 在触摸时移动 View 并在点击时使用react?

转载 作者:行者123 更新时间:2023-11-29 17:42:01 25 4
gpt4 key购买 nike

我创建了一个可以四处拖动的 View 。这是我的来源:

imageView.setOnTouchListener(new View.OnTouchListener() {

private int initialX;
private int initialY;
private float initialTouchX;
private float initialTouchY;

@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
initialX = params.x;
initialY = params.y;
initialTouchX = event.getRawX();
initialTouchY = event.getRawY();
return true;
case MotionEvent.ACTION_UP:
return true;
case MotionEvent.ACTION_MOVE:
params.x = initialX + (int)(event.getRawX()-initialTouchX);
params.y = initialY + (int)(event.getRawY()-initialTouchY);
windowManager.updateViewLayout(imageView, params);
return true;
}
return false;
}
});

如您所见,通过触摸 ImageView 并四处平移, View 本身会移动。现在我的问题是,我想区分移动 View 和实际单击 View 。我在 stackoverflow 上尝试了此处显示的多种方法,但找不到任何解决我问题的方法。

如果 ImageView 被点击,它应该调用一个方法。否则,如果只是触摸移动 View ,则不应调用该方法。

有人有什么建议吗?

提前致谢

最佳答案

当您的 ACTION_UP 事件发生时,您希望返回 false,否则 OnClickListener 不会被调用,因为您告诉系统你已经处理了那个触摸事件。

您可能还想在您的第一个 ACTION_DOWN 事件中获取并保存 System.currentTimeMillis(),然后,只有在 ACTION_UP 事件发生在表示点击的阈值时间之前。

关于android - 在触摸时移动 View 并在点击时使用react?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28328390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com