如何在android中找到action up和action down事件之间的时间差距

时间:2011-08-16 11:00:25

标签: android events gesture

我有以下代码......

public boolean onTouch(View view, MotionEvent me) {

    //here i want to know the  time of touch

    switch (me.getAction()) {
       case MotionEvent.ACTION_DOWN: { }  
       case MotionEvent.ACTION_UP: { }
       -
       -
       -
   }
  }

任何想法?

3 个答案:

答案 0 :(得分:7)

很简单

public yourClass{
    long down;    
    public boolean onTouch(View view, MotionEvent me) {
        //you don't need here the difference because it might be a down action!
        //you need the difference when the up action occurs
        switch (me.getAction()) {
            case MotionEvent.ACTION_DOWN:
                down = System.currentTimeMillis();
                break;
            case MotionEvent.ACTION_UP:
                //this is the time in milliseconds
                long diff = System.currentTimeMillis() - down; 
                break;
        }
    }
}     

答案 1 :(得分:2)

我想你想测量两个事件之间的时间。这很简单。您所需要的只是找到一个返回当前时间的API方法。在这种情况下,android.os.SystemClock.elapsedRealtime()或.uptimeMillis()应该为您服务(android documentation)。
发生第一个事件时,将当前时间保存在变量中。在第二个事件中,您只需计算当前时间与之前存储的值之间的差异。

答案 2 :(得分:0)

您可以使用

System.currentTimeMillis();

捕捉每个事件的时间