onTouch方法每次触摸工作一次

时间:2018-01-18 14:23:02

标签: java android android-studio onclicklistener ontouchlistener

我做了一场2D游戏。当我触摸一列时,2或3个单元格正在变化,而不是1。

如果我一直触摸屏幕,onTouch方法一直工作,直到我抬起手指。 但是我不想要这个,我希望onTouch方法每次触摸工作一次。 我怎么能这样做?

这是我的代码的一部分:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //setContentView(R.layout.activity_customer);
    MyView a = new MyView(this);
    setContentView(a);


    a.setOnTouchListener(new View.OnTouchListener() {
        public boolean onTouch(View view, MotionEvent motionEvent) {

            float mX = motionEvent.getX();

            for (int i = 0; i < size; i++) {
                for (int j = 0; j < size; j++) {
                    if (board[0][j].getterCellType() == '.') {
                        if (mX > board[i][j].getterxPos()-50 && mX < board[i][j].getterxPos() + 50) {
                            playColumn = board[i][j].getterColumn();
                            play();
                            return true;

                        }
                    }
                }
            }
            return true;
        }
    });

}

1 个答案:

答案 0 :(得分:0)

如果您只想执行一次,那么您应该检测ACTION_DOWN。每onTouchMotionEvent.ACTION_MOVEMotionEvent.ACTION_DOWN都会调用MotionEvent.UP方法。

public boolean onTouch(View view, MotionEvent motionEvent) {
    if(motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
       //code code code
    }
}