synchronized (mSurfaceHolder) {
mCanvas=mSurfaceHolder.lockCanvas();
if(xx)
// drawPend(mCanvas);
mSurfaceHolder.unlockCanvasAndPost(mCanvas);
}开始时,正常画。一段时间后,xx变化,标有“//”的那一行会不执行,屏幕的图案就会闪烁。
什么情况?
mCanvas=mSurfaceHolder.lockCanvas();
if(xx)
// drawPend(mCanvas);
mSurfaceHolder.unlockCanvasAndPost(mCanvas);
}开始时,正常画。一段时间后,xx变化,标有“//”的那一行会不执行,屏幕的图案就会闪烁。
什么情况?
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
synchronized (mSurfaceHolder) {
mCanvas=mSurfaceHolder.lockCanvas();
if(tx<200){
mDraw(mCanvas);
}
mSurfaceHolder.unlockCanvasAndPost(mCanvas);
}mDraw函数是:public void mDraw(Canvas canvas) {
mPaint=new Paint();
mPaint.setColor(Color.WHITE);
canvas.drawRect(0, 0, 480, 320, mPaint);//清屏
Bitmap bm0=Bitmap.createBitmap(logo, 0, 50, 256, 100);
Bitmap bm1=Bitmap.createBitmap(logo, 0, 200, 256, 50);
canvas.drawBitmap(bm0, mainActivity.screenWidth/2-bm0.getWidth()/2, mainActivity.screenHight/2-bm0.getHeight()/2, mPaint);//一张背景图
canvas.drawBitmap(bm1, tx, 135, mPaint);//一张移动图,最后就是这张图片来回的动
}