android:Canvas.drawColor(Color.BLACK)不';我无法清理画布

android:Canvas.drawColor(Color.BLACK)不';我无法清理画布,android,android-canvas,Android,Android Canvas,我有一个线性布局,其背景色设置为黑色。在这个LinearLayout中,我有一个视图,我在其中使用画布进行绘制。由于onDraw()方法将被多次调用,因此我想在调用onDraw()方法时清除之前绘制的内容,因此我使用Canvas.drawColor(Color.BLACK)清除画布 但我得到的是一个没有任何东西的黑屏,即使我画了一些新的东西。在添加Canvas.drawColor(Color.BLACK)方法中的onDraw()之前,我已经可以绘制一些东西了 编辑:我的onDraw()方法的代码

我有一个
线性布局
,其背景色设置为黑色。在这个
LinearLayout
中,我有一个
视图
,我在其中使用
画布
进行绘制。由于
onDraw()
方法将被多次调用,因此我想在调用
onDraw()
方法时清除之前绘制的内容,因此我使用
Canvas.drawColor(Color.BLACK)
清除画布


但我得到的是一个没有任何东西的黑屏,即使我画了一些新的东西。在添加
Canvas.drawColor(Color.BLACK)
方法中的
onDraw()之前,我已经可以绘制一些东西了

编辑:我的
onDraw()方法的代码

String value = "";
static Bitmap bitmap;
static Canvas canvas;
public void init(){// this is called by constructor method
  this.setWillNotDraw(false);
  bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
  canvas = new Canvas();
  canvas.setBitmap(bitmap);
}
public void onDraw(Canvas canvas){
  canvas.drawBitmap(bitmap, 0, 0, null);
  drawGrid();
}
public void drawGrid(){
  Paint paint = new Paint();
  paint.setColor(Color.GRAY);
  paint.setStrokeWidth(1);
  canvas.drawText(value, somex, somey, paint);
}
public void changeData(String value){
  this.value = value;
  this.postInvalidate();
}

另一个问题,我称之为Canvas.drawColor(Color.BLACK)

使用
Color.TRANSPARENT
而不是
Color.BLACK
我使用了下面的代码,它适合我。清除画布上的绘图

public void resetBitmapCanvasAndPath() {
    // TODO Auto-generated method stub
    mDrawingUtilities.mBitmap = Bitmap.createBitmap(Constants.SCREEN_WIDTH,Constants.SCREEN_HEIGHT ,
            Bitmap.Config.ARGB_8888);
    mDrawingUtilities.mCanvas = new Canvas(mDrawingUtilities.mBitmap);
    mDrawingUtilities.mPath = new Path();
} 
这里有一个与您的问题类似的链接,请查看已接受的答案。

“但我得到的是一个没有任何东西的黑屏”。你期望得到什么?哦,我想清除屏幕并重新绘制,但是重新绘制的部分看不见。请向我们展示你的
onDraw()
方法,猜测没有任何用处,浪费时间……是的,你是对的,但从你的问题中我了解到,你想使布局透明。对此,我很抱歉,布局必须为黑色您的意思是重置位图吗?它也不起作用。我最终得到了一个黑屏,就像使用Canvas.drawColor(Color.black)
一样。我不能画新的东西。代码对我来说很有用。因此,您需要了解如何实现相同的功能。它清除了画布上的绘图,我可以再次在画布上绘图。看看android中fingerpaint的演示代码。也许这会有帮助。