[英]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.