Pregunta

Varias respuestas mencionar a utilizar GradientDrawable.setDither (verdadero) para dibujar gradaciones suaves en Android. Eso no tiene ningún efecto en mi código. Cualquier idea de lo que tiene que cambiar para conseguir así un gradiente mirando 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);
¿Fue útil?

Solución

En vista de que usted tiene un lienzo para trabajar. Aquí es 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;
}

Resultados:

Resultado

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top