Ich versuche, einen Gradienten zu meiner Symbolleiste festlegen, aber es scheint wie setSize und setGradientCenter nicht funktionieren.GradientDrawable programmgesteuert erstellt: setSize und setGradientCenter Methoden funktionieren nicht
Ich muss es dynamisch erstellen, da die Mitte und die Höhe des Farbverlaufs abhängig von den Werten variieren, die ich von einem CMS bekomme, aber ich kann das nicht funktionieren. Egal, welche Werte ich für Größe und Mittelpunkt einstelle, der Gradient erhält immer die Größe der gesamten Symbolleiste und der Mittelpunkt ist der Standard.
Ich versuchte, muate() zuerst anzurufen, wie die Dokumentation sagt, ohne Ergebnis. Probieren Sie auch SetBounds mit dem gleichen Ergebnis
GradientDrawable gradientDrawable = new GradientDrawable();
gradientDrawable.setOrientation(gradientData.getOrientation());
gradientDrawable.setColors(gradientData.getColors());
gradientDrawable.setGradientCenter(gradientData.getCenterX(), gradientData.getCenterY());
toolbar.setBackground(gradientDrawable);
Fehle ich etwas? Orientierung ist immer linear, wenn das wichtig ist
Verwendung 'ClipDrawable', wenn alles, was Sie wollen, ist ein weiterer Clip Drawable wodurch er breiter/kürzer, je nach Stromstärke – pskink
@pskink Ich will nicht, es befestigen , weil ich nicht den ganzen Gradienten haben würde, wenn ich es täte. Wenn ich zum Beispiel eine Endfarbe habe, würde ich es nicht einmal sehen, wenn ich es abschneide. Ich will nur, dass der Gradient kürzer ist, oder modifiziere den Mittelpunkt, so dass der Gradient früher endet – moyo
also benutze 'ScaleDrawable': * Ein Drawable, das die Größe eines anderen Drawable basierend auf seinem aktuellen Levelwert * – pskink