Android - 跟踪用户触摸relativelayout

时间:2013-08-22 21:00:26

标签: android ontouchevent

我使用相对布局,背景可绘制为自定义按钮,并使用onClick将通知发送到自定义方法。我试图确保我确切知道用​​户何时触摸相对视图并在用户停止触摸相对视图时立即更新。

我不确定当用户不再触摸relativelayout时如何通知。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您需要添加OnTouchListener,然后跟踪用户何时放下手指,以及何时将其选中。取两次的差值来得到总时间。为此,请声明类变量

private Date downTime;

然后删除旧版onClickListener(您在下方添加此逻辑),将onTouchListener添加到onCreate中的视图中:

myView.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent e) {
        switch(e.getAction()) {
            case MotionEvent.ACTION_DOWN :
                downTime = new Date();
                return true;
            case MotionEvent.ACTION_UP :
                Date d = new Date();
                long clickDuration = d.getTime() - downTime.getTime();//this is the number of milliseconds the user took to click.
                //here you should also add your onClick logic.
                downTime = null;
                return true;
        }
        return false;
    }
});