特定双击

时间:2012-05-24 14:36:03

标签: android

我有可缩放的图片,而我正在使用ScaleGestureDetector.SimpleOnScaleGestureListener。我需要实现以下项目:

  1. On Single Tap出现Toast,包含有关图片的信息。
  2. 双击图像正在缩放。
  3. 我有一些问题。 Double Tap之前总是单击并且图片正在缩放,但是出现Toast。有没有办法避免单击?我没有足够的精明来解决这个问题。

    P.S。无法使用OnDoubleTapListener ,因为请使用ScaleGestureDetector.SimpleOnScaleGestureListener

    UPD

    case MotionEvent.ACTION_UP:
        firstTime = System.currentTimeMillis();
        if (Math.abs(firstTime-secondTime) < 300L) {
        // scale my matrix
        ---//---
        DONE = true; //this flag symbolize, that toast doesn't appear (false - appears)
        }
        else if (!DONE) {
             // making toast
        }
        secondTime = firstTime;
        break;
    

    当DoubleTap启用图像缩放但显示吐司时

2 个答案:

答案 0 :(得分:2)

@ matt5784,谢谢。我能够解决我的问题。

case MotionEvent.ACTION_UP:
    float xDiff =  Math.abs(curr.x - start.x);
    float yDiff =  Math.abs(curr.y - start.y);
    firstTime = System.currentTimeMillis();
    if (Math.abs(firstTime-secondTime) > 200L) {
        myHand.postDelayed(mRun, 200);
    }
    else if (!DONE) {
        //scale my matrix
        DONE = true; //this flag symbolize, that toast doesn't appear (false - appears)
    }
    secondTime = firstTime;
    break;

Handler myHand = new Handler();
private Runnable mRun = new Runnable() {
    @Override
    public void run() {
        if (!DONE) {
                     // make toast
        }
    } 

答案 1 :(得分:0)

我建议实施延迟,在一次点击时不会立即弹出信息,但只有在合理的时间内没有遇到第二次点击时才会显示(可能是您的双倍阈值 - 水龙头)。即如果设置为在.2秒内注册任何水龙头作为双击,在等待.2秒之前不要显示信息,并确保没有双击。

备用解决方案(可能不太有用) - 使用双击/缩放功能调用任何使信息框消失的功能。然而,它可能仍然会弹出很短的时间,这可能看起来很愚蠢/有问题。