gpt4 book ai didi

android - 如何将 Ontouch 和 Onclick 用于 ImageButton?

转载 作者:IT王子 更新时间:2023-10-28 23:40:09 26 4
gpt4 key购买 nike

在我的应用程序中,我希望发生两件事。

  1. 当我触摸并拖动 ImageButton 时,它应该会随着我的手指移动。

    我为此使用了 OnTouchListener(),它工作正常。

  2. 当我点击 ImageButton 时,它应该关闭 Activity 。

    我为此使用了 OnClickListener(),它也可以正常工作。

所以,这是我的问题。每当我移动 ImageButton OnTouchListener 并且 ImageButton 移动时,OnClickListener 也会在最后触发我正在释放按钮以防止移动。

如何在同一个按钮上使用 ontouch 和 onclick 监听器而不互相干扰?

最佳答案

试试这个,可能对你有帮助

无需设置 onClick() 方法 onTouch() 将处理这两种情况。

package com.example.demo;

import android.app.Activity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageButton;

public class MainActivity extends Activity {
private GestureDetector gestureDetector;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gestureDetector = new GestureDetector(this, new SingleTapConfirm());
ImageButton imageButton = (ImageButton) findViewById(R.id.img);

imageButton.setOnTouchListener(new OnTouchListener() {

@Override
public boolean onTouch(View arg0, MotionEvent arg1) {

if (gestureDetector.onTouchEvent(arg1)) {
// single tap
return true;
} else {
// your code for move and drag
}

return false;
}
});

}

private class SingleTapConfirm extends SimpleOnGestureListener {

@Override
public boolean onSingleTapUp(MotionEvent event) {
return true;
}
}

}

关于android - 如何将 Ontouch 和 Onclick 用于 ImageButton?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19538747/

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