Frage

Mehr Antworten erwähnen GradientDrawable.setDither (true) verwenden glatte Steigungen in Android zu ziehen. Das hat keine Auswirkung in meinem Code. Jede Idee, was ich zu ändern habe einen gut suchen Gradienten in meinem Live-Wallpaper zu bekommen?

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);
War es hilfreich?

Lösung

Sehen, wie Sie eine Leinwand zur Arbeit mit haben. Hier ist eine 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;
}

Ergebnis:

Ergebnis

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top