android 在 view 里我使用一个 自定义的 canvas 画图 出现问题

在 view 里我使用一个 自定义 canvas 画图。先在 canvas 里画出背景, 再画出几个图片。
背景是一个张图片。当触发 onTouchEvent 后,图片移动 canvas 重画背景画出来会有图片移动的痕迹。
如果背景指定了一个颜色就不会有这样的问题。 怎么解决?

    canvas = new Canvas(bgbitmap);

绘制背景:

canvas.drawColor(selectedColor);

如果用 drawBitmap 绘制背景会有问题

//                     canvas.drawBitmap(bgbitmap, 0, 0, null);

// 绘制 图片
                    for (int i = fbmpCount - 1; i >= 0; i--) {
                        FreeBitmap fb = findFreeBmpByPriority(i);
                        if (fb != null)
                            this.canvas.drawBitmap(fb.getBmp(), fb.getXpoint(), fb.getYpoint(),
                                    null);
                    }

        this.invalidate();

// onDraw 方法。
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawBitmap(bgbitmap, 0, 0, null);
    }
    import android.content.Context;
    import android.graphics.Bitmap;
    import android.graphics.Bitmap.Config;
    import android.graphics.Canvas;
    import android.view.View;

    public class MyView extends View{

        private Bitmap background;

        public MyView(Context context) {
            super(context);
        }

        @Override
        protected void onDraw(Canvas canvas) {
            canvas.drawColor(0xFFFFFFFF);
            if(null==background){
                background=Bitmap.createBitmap(bigBitmap.getWidth(), bigBitmap.getHeight(), Config.ARGB_8888);
                Canvas c=new Canvas(background);
                c.drawBitmap(bigBitmap, 0, 0, null);
                c.save(Canvas.ALL_SAVE_FLAG);
            }
            canvas.drawBitmap(background, 0, 0, null);
            canvas.drawBitmap(smallBitmap, x, y, null);
        }

    }

我认为你应该在重新画之前清空一下画布:

Canvas.drawColor(Color.WHITE)

试试可不可以