Cómo dibujar un degradado suave / degradado en un lienzo en Android

Varias respuestas mencionan usar GradientDrawable.setDither (true) para dibujar gradientes suaves en Android. Eso no tiene efecto en mi código. ¿Alguna idea de lo que tengo que cambiar para obtener un degradado bien en mi fondo de pantalla en vivo?

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); 

Viendo que tienes un lienzo para trabajar. Aquí hay una opción.

 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; } 

Resultado:

Resultado

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.