29
Mehrere Antworten erwähnen, GradientDrawable.setDither (true) zu verwenden, um glatte Verläufe in Android zu zeichnen. Das hat keinen Effekt in meinem Code. Irgendeine Idee, was ich ändern muss, um einen gut aussehenden Farbverlauf in meinem Live Wallpaper zu bekommen?So zeichnen Sie einen glatten/geditherten Farbverlauf auf einer Zeichenfläche in 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);
Was ich nicht vollständig verstehen, warum müssen Sie Koordinaten definieren ('200, 200, 200') zweimal. Was muss ich tun, um die Position und vor allem die GRÖSSE des Farbverlaufs in der 'onDraw()' Methode dynamisch anzupassen? –
Die ersten Koordinaten definieren die Größe des Gradienten, der zweite Koordinatensatz beschreibt die Größe des Kreises, der den Gradienten enthält. Wenn die Koordinaten nicht gleich sind, würde der Gradient den Kreis nicht ausfüllen oder würde durch die Kreisgrenzen abgeschnitten werden. –