29
En varias respuestas se menciona el uso de GradientDrawable.setDither (verdadero) para dibujar degradados suaves en Android. Eso no tiene efecto en mi código. ¿Alguna idea de lo que tengo que cambiar para obtener un buen degradado en mi fondo de pantalla en vivo?Cómo dibujar un degradado liso/difuminado en un lienzo en 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);
Lo que no entiendo es plenamente por qué tiene que definir las coordenadas ('200, 200, 200') dos veces. ¿Qué debo hacer para ajustar dinámicamente la posición y, lo que es más importante, el TAMAÑO del degradado en el método 'onDraw()'? –
Las primeras coordenadas definen el tamaño del degradado, el segundo conjunto de coordenadas describe el tamaño del círculo que contiene el degradado. Si las coordenadas no son las mismas, el degradado no llenaría el círculo o quedaría cortado por los límites del círculo. –