我是android编程的新手,我的目的是在画布中绘制多个相同的drawable(并动画化它们改变x y坐标),返回调用类似 mySurfaceHolder.lockCanvas()的东西。可绘制数量是动态的,随时间变化。
如何保持尽可能高的帧速率?
(抱歉英语不好)
答案 0 :(得分:0)
据我所知,有两种常见方法可以在屏幕上自行绘制动画图像:SurfaceView
或GLSurfaceView
(Android official site)。
为了更好地绘制多个相同的图像,我的建议是在GLSurfaceView
而不是SurfaceView
上绘制图像。
如果要绘制的相同图像数量很大,那么绘制到SurfaceView
上的帧速率将受到设备速度的影响,另一方面,使用GLSurfaceView
赢得'吨。这就是我建议使用GLSurfaceView
绘制图像的原因。
但是如果您不熟悉OpenGL ES,那么绘制多个相同图像的最有效方法是将逻辑语句与绘制代码段的图像与另一个线程分开。使用drawable.draw(canvas)
或canvas.drawBitmap()
绘图会没问题。
PS。使用GLSurfaceView
将需要将drawable转换为纹理,然后才能在GLSurfaceView
上绘制。