【发布时间】:2014-05-07 15:40:55
【问题描述】:
我是 android 编程的新手,我的目的是在画布中绘制多个相同的可绘制对象(并以动画方式更改它们的 x y 坐标),返回调用类似 mySurfaceHolder.lockCanvas() 的方法。可绘制对象的数量是动态的,并且会随时间变化。
如何保持尽可能高的帧速率?
(抱歉英语不好)
【问题讨论】:
标签: android canvas drawing surfaceview android-drawable
我是 android 编程的新手,我的目的是在画布中绘制多个相同的可绘制对象(并以动画方式更改它们的 x y 坐标),返回调用类似 mySurfaceHolder.lockCanvas() 的方法。可绘制对象的数量是动态的,并且会随时间变化。
如何保持尽可能高的帧速率?
(抱歉英语不好)
【问题讨论】:
标签: android canvas drawing surfaceview android-drawable
据我所知,在屏幕上自己绘制动画图像的常用方法有两种:SurfaceView 或 GLSurfaceView (Android official site)。
为了更好地绘制多个相同的图像,我的建议是在GLSurfaceView而不是SurfaceView上绘制图像。
如果要绘制的相同图像的数量很大,那么在SurfaceView 上绘制的帧速率会受到设备速度的影响,而使用GLSurfaceView 则不会。这就是为什么我建议使用GLSurfaceView 来绘制图像。
但是,如果您不熟悉 OpenGL ES,那么绘制多个相同图像的最有效方法是将您的逻辑语句与使用另一个线程的图像绘制代码段分开。使用drawable.draw(canvas) 或canvas.drawBitmap() 绘图即可。
ps。使用GLSurfaceView 需要将drawable 转换为纹理,然后才能在GLSurfaceView 上绘制。
【讨论】: