如何在Android的canvas上绘制平滑/渐变的渐变

几个答案提到使用GradientDrawable.setDither(true)在Android中绘制平滑的渐变。 这对我的代码没有任何影响。 任何想法,我必须改变,以获得在我的活壁纸看起来很好的梯度

GradientDrawable gradient = new GradientDrawable(Orientation.TL_BR, colors); gradient.setGradientType(GradientDrawable.RADIAL_GRADIENT); gradient.setGradientRadius(canvas.getWidth() * 2); gradient.setDither(true); gradient.setGradientCenter(-0.1f, -0.1f); gradient.setBounds(cb); gradient.draw(canvas); 

Solutions Collecting From Web of "如何在Android的canvas上绘制平滑/渐变的渐变"

看到你有一个canvas可以使用。 这是一个选项。

 private Bitmap makeRadGrad() { RadialGradient gradient = new RadialGradient(200, 200, 200, 0xFFFFFFFF, 0xFF000000, android.graphics.Shader.TileMode.CLAMP); Paint p = new Paint(); p.setDither(true); p.setShader(gradient); Bitmap bitmap = Bitmap.createBitmap(400, 400, Config.ARGB_8888); Canvas c = new Canvas(bitmap); c.drawCircle(200, 200, 200, p); return bitmap; } 

结果:

结果