Android:如何知道按钮是否被按下

Dav*_*ini 6 user-interface android callback button

我在Android上玩游戏,我有一个函数MoveCharacter(int direction),当按下按钮时移动一个动画精灵

例如,当用户按下时我有这个代码:

 mControls.UpButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                mLevel.mCharAnimation.FrameUp();
            }           
        });
Run Code Online (Sandbox Code Playgroud)

但是,只要用户按下按钮,我就能继续移动角色.令人惊讶的是,我还没有发现如何在Android中执行此操作.是否有某种onButtonDownLister?

Sam*_*Sam 19

您需要使用OnTouchListener为向下,向上和其他状态分别执行操作.

mControls.UpButton.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        switch(event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            // Do something
            return true;
        case MotionEvent.ACTION_UP:
            // No longer down
            return true;
        }
        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)

  • @quemeful,如果你发布一个_does_回答问题的解决方案,本来会很好.由于你的评论实际上让我测试那个场景,我发现正确的答案是测试`MotionEvent.ACTION_CANCEL`并做与action_up相同的事情. (7认同)