2012-05-02 35 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