本帖最后由 icoler 于 2011-06-20 17:25:57 编辑

解决方案 »

  1.   

    SurfaceView可以将SurfaceHolder对象传给线程 在线程内使用画布canvas重绘 可能会快点
      

  2.   

    建议去看下camera 这个app的实现,他的需求和你一样也是三层,不同的是他最上层用了glsurfaceview来做,glsurfaceview输出图像和ui是不一样的,所以之间没有影响。
      

  3.   


    俺是,直接继承view了,重写了onDraw。在Activity中,不加载该view的话,响应速度很快的。加了后,相应速度非常慢。基本上按下按钮要等4秒左右。
      

  4.   

    补充:在view的onDraw中,由于太多的数据计算,可能这个原因拖慢了速度。至于线程去完成这些计算并根据计算后的数据重绘view,不知道是否有办法。
      

  5.   

    结贴算了,这个问题纠结了,几天,第二层想使用SurfaceView。结果touch事件后,会残留上次画的。也只能使用view了。最后的解决办法是:通过线程去计算各种数据。在run方法最后调用postInvalidate刷新界面。程序响应速度加快了很多。感谢各位的回帖。