使用onTouchEvent更改字段后未调用onDraw()

时间:2014-01-09 01:43:31

标签: java android android-canvas

我正在创建一个Android connect 4游戏,我正处于试图根据用户选择的圆圈放置计数器的阶段,但是现在代码不起作用,计数器基本上没有移动无论我在哪里点击

// onDraw() defined above
@Override 
public boolean onTouchEvent(MotionEvent event) {
    rows = (int)event.getX();
    cols = (int)event.getY();
    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
        case MotionEvent.ACTION_MOVE:
        case MotionEvent.ACTION_UP:
    }
    return false;
}

1 个答案:

答案 0 :(得分:0)

更改rows/cols字段值后,请致电invalidate()。这将要求Android在将来某个时候调用您的onDraw()方法。

您的代码应如下所示:

@Override 
public boolean onTouchEvent(MotionEvent event) {

    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN: // Fall through
        case MotionEvent.ACTION_MOVE: // Fall through
        case MotionEvent.ACTION_UP: // Fall through
            rows = (int)event.getX();
            cols = (int)event.getY();
            invalidate();
            return true;
    }
    return false;
}