问题描述
- 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里写了,有大神提供提供代码吗~~~~~
解决方案
有没有大神能帮忙看看啊TAT~~~~~~
解决方案二:
有个简单的方法 是 你可以记录 用户按下和放开的时间, 对时间间隔进行比对,若间隔超过一定值,即可认为是长按。
解决方案三:
GestureListener接口里面有长按功能
时间: 2024-10-21 09:41:56