2 baidu 34589689 baidu_34589689 于 2016.04.28 14:27 提问

android想用ontouchevent写一个长按

我要做一个时钟的页面,这是我的java里的ontouchevent函数。
public boolean onTouchEvent(@NonNull MotionEvent event)
{
float angle = getAngle(new Point((int) event.getX(), (int) event.getY()),
new Point(mMidX, mMidY));
if (isClickable())
{
switch (event.getAction())
{
case MotionEvent.ACTION_MOVE:
if (Math.abs(mDownX - event.getX()) > mTouchSlop && (mAngleAnimator != null && !mAngleAnimator.isRunning()))
{
if (!IS_API_10)
{
updateCirle(angle);
postInvalidate();
}
}
break;
case MotionEvent.ACTION_DOWN:
mDownX = event.getX();
mIsFilled = mIsEmpty = false;
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
if (Math.abs(mDownX - event.getX()) < mTouchSlop)
{
if (!IS_API_10)
{
animateChange(angle);
mIsFilled = mIsEmpty = false;
}
}
break;

        }
    }
    return true;
}

我想在里面加一个长按的case,不会写,其实我也想过单独写一个长按的函数,关键我是新手,不知道应该在哪调用,所以只能在ontoucheevent里写了,有大神提供提供代码吗~~~~~

3个回答

baidu_34589689
baidu_34589689   2016.04.29 17:03

有没有大神能帮忙看看啊TAT~~~~~~

zhuxu123456789
zhuxu123456789   2016.05.04 16:28

有个简单的方法 是 你可以记录 用户按下和放开的时间, 对时间间隔进行比对,若间隔超过一定值,即可认为是长按。

eyishion
eyishion   2016.05.15 01:02

GestureListener接口里面有长按功能

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
android 在onTouch中添加长按事件
一、前言最近做一个项目要在Ontouch方法中监听长按事件,在网上搜索了不少文章都不太满意。于是就去搜源码,找到了一种解决方案。现在贴出来希望对大家有所帮助.二、解决方法这里我就只把解决方法贴出来,源代码大家可以根据OnLongClickListioner这条线索找找看。这在这里就不找了。public class MyView extends View { private int Touch
Android开发:在onTouchEvent中处理任意时间的长按事件
Android提供了GestureDetector类来处理一些常用的手势操作,比如说 onLongPress,onFling 等。但这里不使用GestureDetector,而是直接在自定义View重写的onTouchEvent中进行处理。   欲实现的效果是:当手机按住屏幕时,如果在指定的时间内没有移动(如500毫秒),那么进入长按模式,此时手指在屏幕上移动都算作长按模式。如果手机按住屏幕就
Android iew 的onTouch事件中,长按、左右滑动和点击判断
在Android的开发中要对一个View长按、滑动、和点击同时进行,在View的onTouch事件中做了以下的工作:  float xDown,yDown;   boolean isLongClickModule = false; boolean isLongClicking = false; myView.setOnTouchListener(new OnTouc
Android通过onTouch事件实现单击,双击,长按
一般采用延时做法。 private int mClickcount; // 点击次数 private int mDownX; private int mDownY; private int mMoveX; private int mMoveY; private int mUpX; private int mUpY; private long mLastDownTim
Android onTouchEvent和onInterceptTouchEvent事件分发详解(二)
通过上一篇的简单演示,我们知道默认情况下只有Button和ImageButton的onTouchEvent返回的是true,表示事件被消耗。这一篇我们结合demo来分析一下它的源码,我们知道在Activity中也有dispatchTouchEvent和onTouchEvent方法,其实他最终调用的还是Viewgroup的方法,我们可以看一下,在Activity中的dispatchTouchEvent方法。
使用OnTouch实现一个控件同时设置单击、双击、长按事件demo
使用OnTouch实现一个控件同时设置单击、双击、长按事件监听。
Android中触控单击、双击、长按、滑动效果
Android Touch Screen 与传统Click Touch Screen不同,会有一些手势(Gesture),例如Fling,Scroll等等。这些Gesture会使用户体验大大提升。 Android中的Gesture识别(detector)是通过GestureDetector.OnGestureListener接口实现的。 首先,Android事件处理机制是基于Liste
Android中onInterceptTouchEvent、dispatchTouchEvent及onTouchEvent的调用顺序及内部原理
-
android 通过onTouchEvent判断是否为双击事件
通过onTouchEvent判断是否为双击事件,通过前面一次up 跟本次down之间的时间差,并且点击的点的坐标偏移来确定是否为双击事件DOUBLE_TAP_TIMEOUT boolean isMove = false; private final int DOUBLE_TAP_TIMEOUT = 200; private MotionEvent mCurrentDownEve
在Android中,如何通过onTouchEvent实现Double Click,判断为双击事件
如何通过onTouchEvent实现Double Click,判断为双击事件 private final int DOUBLE_TAP_TIMEOUT = 200; private MotionEvent mCurrentDownEvent; private MotionEvent mPreviousUpEvent; OnTouchListener mTouchListener =