2

私は絵を描くことができるアプリケーションを作成しています。描画は、pictureView、ビットマップを含むキャンバス、および onTouchListener によって実現されます。2 本指で短く押すと、最後のアクションを元に戻す機能を追加したいと考えています。私はこれを行うことでそれを達成しました:

if(event.getActionMasked() == MotionEvent.ACTION_POINTER_UP ){
    //undo
}

そして、2本指で長押ししたときにすべての描画アクションを元に戻したいです。このようなことを試しましたが、一度しか検出されません。

if(event.getActionMasked() == MotionEvent.ACTION_POINTER_DOWN ){
    numberOfDown++;
        if(numberOfDown>100){
            //undo
        }
}

どうすれば私が望むものを達成できますか?

4

1 に答える 1

1

主な指または非主な指のアクション インデックスがゼロから始まるかどうかはわかりません。そのため、これらの 0 を 1 に反転する必要があるかもしれません。

if(event.getActionMasked() == MotionEvent.ACTION_POINTER_DOWN && event.getActionIndex()==0){
    mSecondFingerTimeDown = System.currentTimeMillis();
}

if(event.getActionMasked() == MotionEvent.ACTION_POINTER_UP && event.getActionIndex()==0 ){
    if ((System.currentTimeMillis()-mSecondFingerDownTime) >= LONG_PRESS_TIME_MILLIS)
        //long double-press action
    else
        //short double-press action
}
于 2013-11-04T18:39:33.840 に答える