开发者

Gradient drawn on Canvas looks banded

开发者 https://www.devze.com 2023-01-17 13:01 出处:网络
I have a gray gradient drawable (png image in res/drawable). If I draw it on a white Canvas it looks banded (not smooth). If I put the gradient on white background in GIMP, 开发者_如何学Pythonand then

I have a gray gradient drawable (png image in res/drawable). If I draw it on a white Canvas it looks banded (not smooth). If I put the gradient on white background in GIMP, 开发者_如何学Pythonand then draw this drawable on the Canvas, it looks great. What's the problem? I tested this on Nexus One. Calling setDither(true) on the drawable has no noticable effect.


This is something that's been frustrating me as well. I've found that saving as a 24-bit BMP eliminates the problem, but that's not really a solution if you need transparency. I don't really understand why a 24-bit PNG has the problem while the 24-bit BMP doesn't.


This does the trick:

Window.setFormat(PixelFormat.TRANSLUCENT);

Found here: http://stuffthathappens.com/blog/2010/06/04/android-color-banding/

I hope it doesn't have any negative sideeffects.

0

精彩评论

暂无评论...
验证码 换一张
取 消