2012-07-06 23 views
0

我正在寫一個基於粒子的遊戲,主要是通過繪製大量的彩色形狀來構建的。Android繪圖性能 - canvas.drawRect vs位圖繪圖

問題1)

對於大多數的敵方單位,我通過設置油漆,然後通過在畫布上繪製矩形繪製4個的矩形。

我想知道是使用位圖繪製還是繪製使用畫布繪製工具更好?我可以輕鬆地製作出我希望繪製的敵方單位的單一圖像。

問題2)

對於我要畫到屏幕上的圖像,我不知道我需要怎麼加載它們?

現在我有噸裝這樣巴紐圖片:

direction1 = BitmapFactory.decodeStream(assetMgr.open("direction1.png"));

我讀過,RGB565是禁食圖像類型繪製到屏幕上。 Microsoft Paint有一些保存選項,但大部分程序只保存爲位圖,而不是一種位圖。如果我開始使用新格式,我會:

  1. 製作新圖像並使用相同的加載代碼。
  2. 使用相同的圖像,並添加像Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);到 從初始加載格式轉換爲RGB565格式。
  3. 製作新圖像並更改我的加載代碼。

感謝您的幫助!非常感謝。

回答

0
  1. 無。使用OpenGL總是更好,唯一的缺點是 ,它需要更多的電池能量,因爲它的硬件 加速。

  2. RGB565意味着圖像使用16位,所以這是您應該尋找的 選項。不要轉換任何東西,只需使用您將使用的格式創建它們即可。

+0

在設計過程中更改爲OpenGL已爲時過晚。這就是我問的原因。我需要擠出更多的表現,以便我可以發貨。 – 2012-07-06 14:37:07

+0

@NathanTornquist,我想這很大程度上取決於你的圖像的大小以及你用來繪製你的人的畫布方法的數量。你如何實現這兩個,去DDMS和使用「啓動方法分析」/「停止」分析?這樣你會看到佔用的CPU的確切百分比。 – Alehar 2012-07-06 14:42:18

0

如果位圖不動一幀一幀,你應該儘量減少無效()方法調用。畫布只能在更改時重新繪製,並且應該更新。