我目前正在開發某種遊戲。這是一個側面滾動,所以很多項目正在移動 - 這將導致重繪。我在另一個(不是UI)線程的SurfaceView中繪製了它,但只要有更多的項目要繪製,性能就會下降。 有沒有提高性能的「好」機制?我能以某種方式在多個線程中執行此操作嗎?畫布,繪畫的多個項目,性能問題
我想過創建多個畫布上,畫上每一個(在不同的線程)我的ViewObject列表的一部分,但我不知道如何「合併」這些。
當我開始添加旋轉圖像時,性能問題開始了。我像這樣旋轉它們:
Matrix matrix = new Matrix();
matrix.preRotate(mRotation, (float) (mResourceBitmaps[mFrame].getWidth()), (float) (mResourceBitmaps[mFrame].getHeight())/2f);
Bitmap bmp2 = Bitmap.createBitmap(mResourceBitmaps[mFrame], 0, 0,
mResourceBitmaps[mFrame].getWidth(), mResourceBitmaps[mFrame].getHeight(), matrix, true);
因此,我爲代碼中的每個動畫幀旋轉每個位圖。當我開始添加一個帶有LruCache的BitmapHolder類時,它變得更快,該類繼續引用每個旋轉的位圖(以及「標準」位圖)。但它仍然滯後。
如何在這個「更專業」的遊戲做的任何建議?由於學習的因素,我真的很想自己開發,不使用任何第三方庫。
所以基本上,我的問題是:如何做我畫的位圖/資源「很大的」上一個帆布/ surfaceview(因爲它們存儲爲PNG我繪製的文件夾)?或者我必須回退到代表對象而不是SurfaceView的多個視圖元素?
不知道我可以直接將我的矩陣傳遞給繪圖函數,謝謝。以爲我不得不使用矩陣重新創建位圖。 – damian