Android - 无法在 canvas 中绘制位图

Android - Can't draw a bitmap in a canvas

我有以下有效的代码:

protected void onDraw(Canvas canvas) {    
    canvas.drawRect(undoButtonRectF, buttonPaint);
    canvas.drawPath(undoButtonArrow, buttonArrowPaint);

无论如何,当我将其与以下内容交换时:

protected void onDraw(Canvas canvas) {        
        undoButtonBitmap = Bitmap.createBitmap((int) undoButtonRectF.width(), (int) undoButtonRectF.height(), Bitmap.Config.ARGB_8888);

        Canvas ca = new Canvas(undoButtonBitmap);

        ca.drawRect(undoButtonRectF, buttonPaint);
        ca.drawPath(undoButtonArrow, buttonArrowPaint);

        canvas.drawBitmap(undoButtonBitmap, undoButtonRectF.left, undoButtonRectF.top, buttonPaint);

什么都没画。这怎么会发生?我以错误的方式使用位图吗?请帮帮我!!!

我想是协调器出错了。

错误是 undoButtonRectF 包含 "canvas" 的偏移量,而不是 "ca" 的偏移量,您应该在调用

之前调整或删除 top/left 偏移量
 ca.drawRect(undoButtonRectF, buttonPaint);
 ca.drawPath(undoButtonArrow, buttonArrowPaint);

对吗?