SurfaceView的时间

来源:互联网 发布:淘宝店铺的宝贝不见了 编辑:程序博客网 时间:2024/04/29 21:14

        最近在应用SurfaceView和View时,觉得这两个在机制上存在不同,如果抛开SurfaceView的双缓存机制,觉得SurfaceView是可以实现View一样的效果的,同时还能完成View不能实现的功能,(SurfaceView本来就是继承View的,上面说的都成废话了)。

        比如View通过Invalidate来刷新,在SurfaceView中如果不用线程进行异步处理的话,完成可以通过Handle来实现同步刷新。对于SurfaceView的非UI线程刷新问题,这部分在开发时,多少时间刷新,怎么规划各个线程,线程之间如何同步是个难题,而且还得考虑现在的CPU频率和耗电量,太频繁,看着没什么,但做了不少无用功。所以这个度把握需要考虑好。

        第一次自己用SurfaceView的时候,想起一个加一个线程,导致最后线程更新都乱了,时间上也没法统一,后来又重新划分,所以说不是线程越多越好,最好按时间片来划分,定义好游戏里各个觉得的时间片,这样可以一个线程也可以对时间跨度大的用多个线程,可以根据需要进行划分,而不会在更新时间上混乱。

        当然,对于棋类游戏,还是推荐使用View,那样不会偷懒,自己起码知道什么时间需要去更新,哈哈。

原创粉丝点击