渲染我的动态壁纸时,我有一些条纹渐变文物。 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。或者有吗?
P.S。当然我知道我可以做上面文章中描述的其他内容,比如应用抖动等,所以请不要打扰我。我想找到一个与我问的答案完全相符的答案:)
答案 0 :(得分:1)
在onCreate()
中设置PixelFormatholder.setFormat(PixelFormat.RGBA_8888);