如何确定android中的触摸持续时间

时间:2014-06-24 06:13:24

标签: java android

我是android的初学者。我需要确定android活动的触摸持续时间。例如,当用户触摸并按住屏幕时,5秒钟后,我需要显示一个祝酒词(这个场景应该在用户的触摸时间段内完成。换句话说就是不在动作up事件中)。这可能吗? 我试过这个。

public boolean onTouchEvent(MotionEvent event) {
    int eventaction = event.getAction();
    switch (eventaction) {
    case MotionEvent.ACTION_DOWN:
        pressTime = event.getDownTime();            
        break;
    case MotionEvent.ACTION_UP:
        eventTime = event.getEventTime();
        //Toast.makeText(this, (eventTime - pressTime)+"", 100).show();
        if (pressTime <= 5000) {
            Toast t = Toast.makeText(this, "5 sec", 5);
            t.show();
        }
        if (pressTime > 7000) {
            Toast t = Toast.makeText(this, "5 sec to 20 sec", 5);
            t.show();
        }
}

这在动作up事件时有效。我需要在触摸时间段内完成。

先谢谢。

1 个答案:

答案 0 :(得分:1)

检查您的印刷时间和发布时间之间的差异:

long holdTime = eventTime - pressTime;
if (holdTime > 7000 && holdTime < 20000) {
    Toast t = Toast.makeText(this, "5 sec to 20 sec", 5);
    t.show();
} else if (holdTime > 5000 && holdTime <= 7000) {
    Toast t = Toast.makeText(this, "5 sec", 5);
    t.show();
}
相关问题