[英]Android - Most efficient way to draw multiple identical Drawables in a Canvas?
我是android编程的新手,我的目的是在调用mySurfaceHolder.lockCanvas()之类的返回画布中绘制多个相同的可绘制对象(并使它们动画化,以更改其xy坐标) 。 可绘制对象的数量是动态的,并且会随着时间而变化。
如何保持尽可能高的帧速率?
(对不起,英语不好)
据我所知,有两种常见的方法可以在屏幕上自己绘制动画图像: SurfaceView
或GLSurfaceView
( Android官方网站 )。
为了更好地绘制多个相同的图像,我的建议是在GLSurfaceView
而不是SurfaceView
上绘制图像。
如果要绘制的相同图像数量很大,则绘制到SurfaceView
上的帧速率将受到设备速度的影响,另一方面,使用GLSurfaceView
则不会。 这就是为什么我建议使用GLSurfaceView
绘制图像的原因。
但是,如果您不熟悉OpenGL ES,那么绘制多个相同图像的最有效方法是使用另一个线程将逻辑语句与图像绘制代码段分开。 使用drawable.draw(canvas)
或canvas.drawBitmap()
进行drawable.draw(canvas)
就可以了。
ps。 使用GLSurfaceView
必须GLSurfaceView
可绘制对象转换为纹理,然后才能在GLSurfaceView
上绘制GLSurfaceView
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.