Если вы пытаетесь реализовать какую-то двойную буферизацию, вы можете взглянуть на this
Я думаю, что ваша проблема в том, что вам нужно создать растровое изображение,затем прикрепите к нему холст, что-то вроде:
Bitmap bitmap = Bitmap.createBitmap(width, height, Config.RGB_565);
Canvas c = new Canvas(bitmap);
// then draw to the canvas..
// and when you're happy, draw the bitmap onto the canvas supplied to onDraw.
Просто создавая холст, вы не увидите его на экране.
Вы также можете взглянуть на: этот урок
Если у вас есть SurfaceView, вы можете сделать что-то вроде этого (не иметь компилятора, но, надеюсь, вы поймете суть):
SurfaceView view = (SurfaceView)findViewById(R.id.view);
SurfaceHolder holder = view.getHolder(); // save this where it can be accessed by your function
Canvas c
try {
c = holder.lockCanvas();
// draw stuff
}
finally {
if(null != c) {
holder.unlockCanvasAndPost(c);
}
}