두개 쓰는 이유는
canvase두개를 백버퍼라 하고 유저 버퍼라고한다면
백버퍼는 배경을 그리고
유저버퍼는 움직이는 케릭터를 그린다
그러면 백버퍼는 배경이기 때문에 자주 갱신을 할 필요가 없는데
배경을 그리기위해 자잘한 이미지들을 개임중에 계속 그려줄 필요가없는것이다 (속도저하)
그래서 canvas를 하나 더 선언해서 필요할때만 딱 그려주고 계속 그놈을 쓰는 방법을 구현한것이다
///////////선언
private SurfaceHolder mSurfaceHolder;
Canvas canvas = null;
private Bitmap mImgBack;
Bitmap imgScreen;
Canvas bbg;
Boolean fFirst = false;
///////////생성자
Resources res = context.getResources();
mImgBack = BitmapFactory.decodeResource(res, R.drawable.img1);
imgScreen = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
bbg = new Canvas(imgScreen);
fFirst = true;
//////////그리는 부분
canvas = mSurfaceHolder.lockCanvas(null);
if(fFirst)
{
bbg.drawBitmap(mImgBack, 0, 0, null);
fFirst = false;
}
canvas.drawBitmap(imgScreen,0,0,null);
mSurfaceHolder.unlockCanvasAndPost(canvas);
완벽해 ~ 하하하하하하하하하하하하하하하하하하하하하핳하하하하하하