我是新手。我使用 Canvas 制作了一个简单的游戏。我在 onDraw() 方法中编写了几乎所有的代码,那里有很多计算。在我的代码中 onDraw() 的末尾有一个 invalidate() 方法。这就是我调用重绘视图的方式。如何仅重绘 Canvas 的一部分?主要问题是我在 onDraw() 中有很多计算,它会减慢整个游戏的速度。我尝试使用像这里这样的位图:
但它并没有解决问题,因为创建位图的过程太慢了。使用 SurfaceHolder 和 Callback 是个好主意吗?我尝试使用它,但我不知道这是否是做我想做的事情的正确方法。有谁能够帮我?如何仅部分重绘我的视图以停止始终通过新计算重绘所选元素(从保存状态绘制它们)?我只想在需要时重绘整个视图。如果有人发布可以解决此问题的代码(甚至可以是两个矩形),那就太好了。