我正在開發一個將繪製模擬時鐘的動態壁紙應用程序。到目前爲止,我已經達到了使用三個位圖繪製時鐘的程度:撥號,時針,分針。在畫布上繪製旋轉的位圖很慢:還有其他選項嗎?
當我畫小時和分鐘我做這樣的(僞代碼):
// without this it looks weird after rotate
Paint smoothPaint = new Paint(FILTER_BITMAP_FLAG);
canvas.drawBitmap(dialBitmap, 0, 0, null);
canvas.rotate(ANGLE_FOR_HOUR_HAND, w/2, h/2);
canvas.drawBitmap(hourBitmap, 0, 0, smoothPaint);
canvas.rotate(ANGLE_FOR_MINUTE_HAND, w/2, h/2);
canvas.drawBitmap(minuteBitmap, 0, 0, smoothPaint);
這工作,除了我得到一個非常低幀率好:約13幀。 如果我關閉位圖過濾,它會增加到約24 fps,但對我而言仍然很低。
我知道在Canvas上繪製的2D圖不會以任何方式加速,但仍然想要問有沒有其他選項可以加速此代碼?以某種方式本地繪製位圖?也許還有其他的東西?
利用OpenGL是一種選擇,但由於其LiveWallpapers不那麼簡單不支持GL繪圖,所以我需要使用第三方黑客(我知道存在)對於我寧願不做......
感謝您的回覆:)編號1)不計數,我的意思是「其他選項」爲這個確切的設置 - 顯示旋轉圖像: )2)你提供了一個非常好的信息,謝謝。我會看看AndEngine。我已經知道GLWallpaperService,已經使用過了,正如我所說的,我現在不想使用它 - 我要求在2D Canvas中提供選項。關於libgdx + livewallpapers的非常有趣的信息 - 我知道那個很好的lib,它對於它的支持真的很酷:)如果你對我發現的更多東西感興趣,可以增加fps,請參閱我自己的答案:) – dimsuz 2011-04-17 17:04:42
@dpimka剛剛編輯的答案,以添加renderscript到「黑客」的全景。可能沒有用於你目前的目的,但有些事要熟悉......祝你好運。 – 2011-05-13 17:51:04