首页 > 代码库 > 实现对view的单击双击监听
实现对view的单击双击监听
这里只介绍使用方法:
1.实现一个GestureDetector监听器
2.设置setOnDoubleTapListener监听
3.实现onDoubleTap(执行双击操作)
4.实现onSingleTapConfirmed(执行单击操作)
// 手势监听器
GestureDetector mGestureDetector = new GestureDetector(imageView.getContext(),
new GestureDetector.SimpleOnGestureListener() {
// forward long click listener
@Override
public void onLongPress(MotionEvent e) {
// 可执行长按操作
}
});
// 实现双击监听(其中包含了单击的监听)
mGestureDetector.setOnDoubleTapListener(this);
public final boolean onDoubleTap(MotionEvent ev) {
// 执行双击事件
}
// 执行单击事件
public final boolean onSingleTapConfirmed(MotionEvent e) {
// 以下方法判断是单击在指定view上或是view外部
//用imageview为例
ImageView imageView = getImageView();
// 单击imageview
if (null != imageView) {
if (null != mPhotoTapListener) { // 单击imageview监听器
final RectF displayRect = getDisplayRect();if (null != displayRect) {
final float x = e.getX(), y = e.getY();
// Check to see if the user tapped on the photo
if (displayRect.contains(x, y)) {
float xResult = (x - displayRect.left)
/ displayRect.width();
float yResult = (y - displayRect.top)
/ displayRect.height();
// 单击imageview 回调方法
mPhotoTapListener.onPhotoTap(imageView, xResult,
yResult);
return true;
}
}
}
// 单击imageview外部监听
//执行单击imageview外部事件
}
}
return false;
}
实现对view的单击双击监听