无法使用update()调用onDraw(Canvas画布)

时间:2012-08-13 18:26:13

标签: java android android-canvas ondraw invalidation

我目前正在开发android并遇到了一个非常严重的问题:

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    Log.i("GAME", "onDraw Called");
    for(int i = 0; i < totalEggNumbers -1; i++) {
        if (egg[i].isKilled = false)
        canvas.drawBitmap(image[egg[i].getEggNum()], egg[i].getX(), egg[i].getY() + 100, paint);
        Log.i("GAME", "Something Drawn");
    }
}

// called by thread
public void update() {
        //Chance to make egg
    Log.i("GAME", "Updated Game");
    eggMaker.randomEgg(difficulty);
    postInvalidate();
}

onDraw永远不会被调用,我在终止应用程序后无法在logcat中找到日志,但是当它运行时,我可以看到一个“onDraw Called”出现并偶尔消失。

我非常绝望......我正在使用android视图顺便说一句。有什么方法可以调用onDraw方法吗?我试过invalidate();但没有机会,请修改我的代码:)

1 个答案:

答案 0 :(得分:0)

尝试将图像作为BitMap对象传递给drawBitMap方法

Bitmap bmp = BitmapFactory.decodeResource(
        getResources(), image[egg[i].getEggNum());