我想采用:局部刷新而不是将整个的 surfaceView 全部清空, 然后重新绘制,-------------请问有啥好的解决办法么?

解决方案 »

  1.   

    最好不要刷屏,因为刷屏一般都会影响用户体验,你可以通过坐标,或者marginleft来控制相对位置
      

  2.   

    surfaceView应该都是整个屏幕刷新的吧,局部刷新我没试过,你去看看ViewGroup能不能局部刷新
      

  3.   


    如果游戏中要实现sprite的移动 , 我该咋办?其实我想问的也就是一个关于游戏的 sprite移动问题
      

  4.   

    这个我就不懂了,就算你marginleft控制了位置,你的帧还不是一样要刷的吗?不刷新的话,就算坐标变化屏幕也不会有任何反应的
      

  5.   


    我也不懂, 我现在就想搞明白,如何实现局部刷新, 难道 surfaceView 不支持么?我看他有个 方法 lockCanvas(Rect dirty)搞不懂这个是干嘛的。
      

  6.   

    你可以在绘图时不清屏幕,直接绘图,但这样有一个严重的问题就是,surfaceView是双缓存,这样你绘制的更新内容只绘制到了其中一个缓存内,这样就出现了闪烁,如你的问题,你可以先创建一个Bitmap,并将其作为画布,在更新后直接将该Bitmap重绘倒lockCanvas获得的缓存画布中并提交.所以,精灵的绘制优化完全由你在自己的Bitmap中实现,这样非常灵活,并且效率较高
      

  7.   

    局部刷新有相应的API,想lockCanvas住在调用绘制函数