Domanda

Diverse risposte parlare di utilizzare GradientDrawable.setDither (vero) per disegnare pendenze regolari in Android. Che non ha alcun effetto nel mio codice. Qualche idea di cosa devo cambiare per ottenere un gradiente ben guardare nella mia carta da parati dal 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);
È stato utile?

Soluzione

Visto che hai una tela su cui lavorare. Qui è un'opzione.

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

Risultato:

Risultato

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top