-1

連続するタップ間の時間をミリ秒単位で測定したい。これどうやってするの?

4

2 に答える 2

8
View myView;
long previousClickTime;

...

myView.setOnTouchListener(new View.OnTouchListener(){
    @Override
    public boolean onTouch(View v, MotionEvent ev)
    {
        long temp = System.currentTimeMillis();
        if (previousClickTime != 0)
        {
            Log.i("MyView", "Time Between Clicks=" + (temp - previousClickTime));
        }
        else
        {
            Log.i("MyView", "First Click");
        }
        previousClickTime = temp;

        return true;//Note that you can return false, and any underlying Views will then receive this touch event.
    }
}

補足として、ダブルクリックを検出しようとしている場合は、GuestureDetector.setOnDoubleTapListenerを試してください。

于 2012-07-16T21:25:23.603 に答える
1

イベントをオーバーライドしonCLick()ます。

onClick()イベント内。アプリに最初のタップを取得させ、時間を保存します。次に、2回目の保存を行い、2つのタップの差を取得します。そして、違いを表示するだけです。

以下のコードは非常に単純で、あなたが探しているものではないかもしれませんが、私はそれを非常に簡単な例としてそこに置きました。

long initialTime = 0;
long endTime = 0;

onClick() {

    if(initialTime == 0){
        initialTime = System.currentTimeMillis();
    } else {
        endTime = System.currentTimeMillis();
        long diff = endTime - initialTime;
        initialTime = endTime;
        Log.i("your app", "time between click: " + diff);
    }

}
于 2012-07-16T20:44:26.767 に答える