Ich versuche, einen Farbverlauf zu erstellen, der von der Mitte des Bildschirms in Weiß ausgeht und sich in Richtung der Bildschirmränder in Schwarz verwandelt.
Während ich einen "normalen" Farbverlauf wie diesen mache, habe ich mit verschiedenen Formen experimentiert:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient android:startColor="#E9E9E9" android:endColor="#D4D4D4"
android:angle="270"/>
</shape>
Bei Verwendung der "ovalen" Form habe ich zumindest eine runde Form erhalten, aber es gab keinen Verlaufseffekt. Wie kann ich das erreichen? '
Ich finde Bilder immer hilfreich, wenn ich ein neues Konzept lerne, daher ist dies eine ergänzende Antwort.
Die
%p
Mittel ein Prozentsatz der Eltern, das heißt, ein Prozentsatz der schmalste Dimension was sehen wir unsere ziehbar setzen auf. Die obigen Bilder wurden durch Ändern desgradientRadius
in diesem Code erzeugten erzeugtmy_gradient_drawable
Welches kann auf das
background
Attribut einer Ansicht wie folgt eingestellt werdenCenter
Sie können den Mittelpunkt des Radius mit ändern
wobei die Dezimalstellen Bruchteile der Breite und Höhe für
x
bzw.y
sind.Dokumentation
Hier sind einige Anmerkungen aus der Dokumentation , die die Dinge etwas näher erläutern.
quelle
%
oder des Nichteinschlusses erklärt .Sie können dies auch im Code tun, wenn Sie mehr Kontrolle benötigen, z. B. mehrere Farben und Positionierungen. Hier ist mein Kotlin-Snippet, um einen zeichnbaren radialen Farbverlauf zu erstellen:
Grundlegende Verwendung (aber Sie können sie gerne mit zusätzlichen Parametern anpassen):
quelle
Ich denke du solltest android hinzufügen: centerColor
In diesem Beispiel wird ein horizontaler Farbverlauf von Weiß über Schwarz nach Weiß angezeigt.
quelle
quelle
Hier ist die komplette XML mit Farbverlauf, Stoke & Kreisform.
quelle
quelle