本帖最后由 flyfly52 于 2014-07-14 21:31:45 编辑

解决方案 »

  1.   

    SurfaceView 有两块 canvas 画布, 画布一 在显示的时候, 画布二 已经开始绘制另一个图像, 两块画布交替显示, 因此 在SurfaceView 上打印数字的时候, 可能会出现打印出来的数字不一致,  两块画布的内容不一样的原因;如果绘制动画 或者 动态图片, 双缓冲会使界面更加流畅, 但是绘制连续的数据的时候会出现交替现象, 这是因为两个缓冲区是不同步的
      

  2.   

    参考博客 : 
    -- 双缓冲demo :  http://blog.csdn.net/imyfriend/article/details/8033823 应该是你的demo那个博客
    -- 双缓冲理解 : http://www.apkbus.com/android-99309-1-1.html 分析SurfaceView源码
    -- 双缓冲与单缓冲区别 : http://blog.csdn.net/lcfeng1982/article/details/7431446 
    -- 双缓冲与但缓冲动画绘制区别demo : http://blog.csdn.net/geolo/article/details/6024761
      

  3.   

    SurfaceView 有两块 canvas 画布, 画布一 在显示的时候, 画布二 已经开始绘制另一个图像, 两块画布交替显示, 因此 在SurfaceView 上打印数字的时候, 可能会出现打印出来的数字不一致,  两块画布的内容不一样的原因;如果绘制动画 或者 动态图片, 双缓冲会使界面更加流畅, 但是绘制连续的数据的时候会出现交替现象, 这是因为两个缓冲区是不同步的 
      

  4.   


           谢谢回答,按您的意思,也就是说运行程序后在我们的屏幕上,将会出现两个界面,也就是画布一和画布二分别呈现的,也就是您推荐给我的第一个博客:http://blog.csdn.net/imyfriend/article/details/8033823 中所说的,出现单双数出现在不同的界面的情况。
            但是,不知道您是否运行过程序,实际的效果并不是他说的那样子,实际呈现的将会是三个界面:界面一:“0,3,6,9,...”,界面二:”1,4,7,10,... “,界面三:“2,5,8,11,...”,并不是预期的那样,所以能否讲的详细点?
    界面一:
    界面二:
    界面三:
      

  5.   

    有一个办法,就是你使用一个内存图片,每次把要绘制的东西先在它上面绘制好,保留你叠加的效果,lockCanvas 成功后把这个图片绘制到 SurfaceView 。--------------------------
    博文决赛,投我一票,谢谢。