synchronized (mSurfaceHolder) {
   mCanvas=mSurfaceHolder.lockCanvas();
    if(xx)
//   drawPend(mCanvas);
   mSurfaceHolder.unlockCanvasAndPost(mCanvas);
}开始时,正常画。一段时间后,xx变化,标有“//”的那一行会不执行,屏幕的图案就会闪烁。
什么情况?

解决方案 »

  1.   

    真机测试也是同样的问题。把完整代码贴出来,大家看下:                       while(mIsRunning){
    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);//一张移动图,最后就是这张图片来回的动
    }
      

  2.   

    告诉我怎样在surfaceView中暂停游戏也行