2012-05-02 40 views
1

當呈現我的動態壁紙時,我有一些帶狀漸變工件。 This article完美地解釋了背後的原因:爲了消除其中的大部分,提高效率,我可以在32位位圖上繪製32位位圖:)是否有可能擁有32位(ARGB_8888)表面格式的動態壁紙?

所以我問自己一個問題:如何做到這一點的動態壁紙?並且沒有找到答案:) 在動態壁紙中,我們有一個由android框架爲我們創建的表面。它發生如此,這是一個RGB_565表面,這是因爲:

// code inside my WallpaperService.Engine subclass 
public void onSurfaceChanged(SurfaceHolder holder, int format, int width, int height) 
{ 
    Log.d("test", "format is: "+format); // => prints 4, which is PixelFormat.RGB_565 
} 

而且似乎也沒有辦法,我可以讓Android框架來改變這是ARGB_8888。或者在那裏?

P.S.當然,我知道我可以做其他的東西在上面的文章中描述,如應用抖動等,所以請不要打擾我指出這一點。我想找到答案正是我要問:)

回答

1

設置裏面的onCreate()

holder.setFormat(PixelFormat.RGBA_8888); 
+0

呵呵的PixelFormat的問題,謝謝!而已! :)) – dimsuz