Java 在Android中更改背景颜色

Java 在Android中更改背景颜色,java,android,graphics,Java,Android,Graphics,我正在制作一款android游戏,目前我面临一个问题。我想有一个像下面的背景,但颜色必须不断变化 我的代码是: public void draw(Canvas canvas) { changeColors(); canvas.drawBitmap(ResourcesHandler.mGraphics.getBitmap(bmp), mMatrix, paint); } public void changeColors() { col[0] += rnd.nextFlo

我正在制作一款android游戏,目前我面临一个问题。我想有一个像下面的背景,但颜色必须不断变化


我的代码是:

public void draw(Canvas canvas) {
    changeColors();
    canvas.drawBitmap(ResourcesHandler.mGraphics.getBitmap(bmp), mMatrix, paint);
}
public void changeColors() {
    col[0] += rnd.nextFloat() * .5f;
    if(col[0]>360) col[0]=0;
    paint.setColor(Color.HSVToColor(col));
    paint.setColorFilter(new LightingColorFilter(Color.HSVToColor(col), 1));
}

因此,我不断地改变颜色,我得到了如下图像(当然,颜色在变化,不仅是红色,它不时地变成蓝色、绿色、紫色等,但效果是一样的)


希望你看到问题所在。六边形的平滑渐变(第一张图)变成了一个想要的渐变,实际上是由2-3种颜色组成的,看起来像是用油漆做的(第二张图)。为什么会这样?我只想有一个漂亮的渐变颜色,不是那样的。是不是因为我只改变了色调(比如我不改变饱和度,哪个是1)?是因为我使用的过滤器吗?我怎样才能达到我想要的效果?顺便说一句,你可能会看到第二张图片中六边形的笔划不是很好。这是因为它前后缩放了2-3倍。这在实际设备上不是问题(据我所见)。问题只是坡度不好。


提前感谢,并为我的英语不好道歉!:)

在你发布的图片中,我几乎看不到你描述的问题。我怀疑在每个六边形中,这是一个与垂直方向成60度的梯度。我建议另一种方法。制作一个漂亮的半透明六边形,并将其覆盖在交替的背景色上。。。