【发布时间】:2018-09-10 03:12:30
【问题描述】:
我试图在视图上显示一个蓝色方块,然后显示一个红色方块。
问题是当它应该画一个蓝色方块时它没有画任何东西,但是当它应该画一个红色方块时,它却没有画一个蓝色方块。
我在这里错过了什么?
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if(runCount == 1)
{
// Color blue and save bitmap
blueCanvas = new Canvas();
blueBitmap = Bitmap.createBitmap(canvas.getWidth(),canvas.getHeight(),Bitmap.Config.RGB_565);
canvas.drawRect(0, 0 , 200, 300, bgPaintBlue);
}
if(runCount == 2){
// Color red
redCanvas = new Canvas();
redBitmap = Bitmap.createBitmap(canvas.getWidth(),canvas.getHeight(),Bitmap.Config.RGB_565);
canvas.drawRect(0, 0 , 200, 300, bgPaintRed);
}
runCount++;
invalidate();
}
【问题讨论】:
-
您不需要从 onDraw 方法调用 invalidate();。也不明白你到底想做什么,请详细说明
-
在阅读了一些关于画布、位图等的理论之后,我只是想研究一下这个机制是如何工作的。但我无法理解这个小例子