渲染动态壁纸时,我会出现一些带状渐变的瑕疵。 This article完美地解释了其背后的原因:要消除它们中的大多数并提高效率,我可以在32位位图的上方绘制32位位图:)

所以我问自己一个问题:动态壁纸该怎么做?而且找不到答案:)
在动态壁纸中,我们有一个由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。还是在那里?

附言当然,我知道我可以做上面文章中描述的其他事情,例如应用抖动等,因此请不要为此烦恼。我想找到我所问问题的答案:)

最佳答案

在onCreate()中设置PixelFormat

holder.setFormat(PixelFormat.RGBA_8888);

关于android - 可以使用32位(ARGB_8888)表面格式的动态壁纸吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10412420/

10-11 17:17