連続するタップ間の時間をミリ秒単位で測定したい。これどうやってするの?
質問する
8081 次
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 に答える