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);
- Awful calidad de imagen de fondo en Android
- LinearGradient Center Animation
- Cómo colocar el fondo del gradiente radial
- Android LinearGradient y extraño posicionamiento relativo
- Bandas de colores únicamente en Android 4.0+
- Gradiente Oval en Android
- Multi-gradiente de formas
- Desvanecimiento de la animación en forma de degradado de fondo
- ¿Cómo hacer gradiente transparente?
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: