Android - 在画布中绘制多个相同Drawable的最有效方法?

时间:2014-05-07 15:40:56

标签: android canvas drawing surfaceview android-drawable

我是android编程的新手,我的目的是在画布中绘制多个相同的drawable(并动画化它们改变x y坐标),返回调用类似 mySurfaceHolder.lockCanvas()的东西。可绘制数量是动态的,随时间变化。

如何保持尽可能高的帧速率?

(抱歉英语不好)

1 个答案:

答案 0 :(得分:0)

据我所知,有两种常见方法可以在屏幕上自行绘制动画图像:SurfaceViewGLSurfaceViewAndroid official site)。

为了更好地绘制多个相同的图像,我的建议是在GLSurfaceView而不是SurfaceView上绘制图像。

如果要绘制的相同图像数量很大,那么绘制到SurfaceView上的帧速率将受到设备速度的影响,另一方面,使用GLSurfaceView赢得'吨。这就是我建议使用GLSurfaceView绘制图像的原因。

但是如果您不熟悉OpenGL ES,那么绘制多个相同图像的最有效方法是将逻辑语句与绘制代码段的图像与另一个线程分开。使用drawable.draw(canvas)canvas.drawBitmap()绘图会没问题。

PS。使用GLSurfaceView将需要将drawable转换为纹理,然后才能在GLSurfaceView上绘制。