在android开发(尤其是android游戏开发)中有一个很严重的问题就是带有渐变效果的png图片会出现严重的banding(色带),鉴于这种情况,有几种可行的解决方法:
1.如果Activity里面的onCreate()方法里面的setContentView()的参数是xml布局文件(类似R.layout.main),则可在Activity的onCreate()里面的setContentView()之前加上一行代码:
getWindow().setFormat(PixelFormat.RGBA_8888);
Problem solved;
2.如果Activity里面的onCreate()方法里面的setContentView()的参数是一个SurfaceView的子类,这种情况下第一种方法就不行了,此时需要在SurfaceView的子类的Constructor(构造器)里面加上一行代码:
getHolder().setFormat(PixelFormat.RGBA_8888);
Problem solved;
3.人为的在自己的png图片上利用photoshop的 滤镜-杂色-添加杂色 给png图片加上noise(噪声或杂色),一般数量取值0.5%即可,这样处理过的图片,即使在程序中没有经过前2种方法处理,图片也不会有banding,但是添加了noise的图片体积会比原来大至少4倍,所以不好,而且把手机拿近了看会看到图片有明显的杂色,所以不到万不得已最好不用。