Question

Plusieurs réponses mentionnent utiliser GradientDrawable.setDither (true) pour dessiner des dégradés lisses dans Android. Cela n'a pas d'effet dans mon code. Toute idée de ce que je dois changer pour obtenir un dégradé bien regarder dans mon fond d'écran en direct?

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);
Était-ce utile?

La solution

Voyant que vous avez une toile à travailler avec. Voici une option.

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

Résultat:

Résultat

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top