SurfaceView是frontbuffer和backbuffer交替显示的,每次Post交替一次,按你这样写两个Buffer是不一样的所有奇数的Post画在一起,偶数的画在另外个Buffer,运行起来就会闪了。延时长一点就看的出来了。
应用上加缓冲就可以了。
| 1 2 3 4 5 6 7 8 9 10 11 12 | //加缓冲 private Paint[] paints=new Paint[2]; private Path[] paths=new Path[2]; //这样更新canvas paints[0]=paints[1]; paints[1]=mPaint; paths[0]=paths[1]; paths[1]=mPath; if(paints[0]!=null) //画的时候还有画一次的 canvas.drawPath(paths[0], paints[0]); canvas.drawPath(mPath, mPaint); |