gpt4 book ai didi

android - longPress 不回复 ACTION_UP - 简单的手势监听器

转载 作者:行者123 更新时间:2023-11-29 00:07:38 25 4
gpt4 key购买 nike

我正在尝试使 imageView 在长按时增加尺寸,并在我取消按下后恢复正常。

public class MainActivity extends Activity {
private class Erjan_gestures extends SimpleOnGestureListener{
@Override
public void onLongPress(MotionEvent event) {
Log.wtf("x", "long press occurring");

switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
Log.wtf("x", "LONG PRESS - action down");
image.getLayoutParams().height = 400;
image.getLayoutParams().width = 400;
RelativeLayout.LayoutParams for_answer1 = new RelativeLayout.LayoutParams(300, 600);
image.requestLayout();
break ;
case MotionEvent.ACTION_UP:
//THIS CASE IS NEVER REACHED
Log.wtf("x", "LONG PRESS - action up");
image.getLayoutParams().height = oldH;
image.getLayoutParams().width = oldW;
image.requestLayout();
break;
}
}
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

image= (ImageView)findViewById(R.id.card);
button=(Button)findViewById(R.id.button);

oldW = 500;
oldH = 600;

gestureDetector = new GestureDetector(new Erjan_gestures());
gestureDetector.setIsLongpressEnabled(true);
image.setOnTouchListener(new View.OnTouchListener(){

@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_UP){
Log.wtf("x", "action up is detected");
}
Log.wtf("x", "I m a card, and i know you click on me!");
if(gestureDetector.onTouchEvent(event)) {
Log.wtf("x", "this is onTouch(View v, MotionEvent event)");
return true;
}
else return false;
}
});
}

但是,我的 imageView 确实检测到长按并执行了 ACTION_DOWN,但从未进入 longpress() 中的 ACTION_UP 部分。

这是因为长按不应该分为 action_up,down 吗?

  1. Long press gesture itself only consists of press(aka ACTION_DOWN)?
  2. why action_up in longPress never gets executed?

最佳答案

这确实是因为longpress没有上下之分,而是只有一个“触发” Action 。

实际上,ACTION_DOWN 甚至是一个不正确的术语。 longpress 与 ACTION_DOWN 没有任何关系,因为 ACTION_DOWN 不会在用户按下按钮时立即触发。它只会在特定的按住延迟后被触发。因此,DELAY_PASSED 左右将是一个更合适的名称。

请注意,正常的按下仍在继续,并且它的 ACTION_UP 仍会触发。

关于android - longPress 不回复 ACTION_UP - 简单的手势监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32710445/

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