Ich möchte eine Farbe aus einer Hexa-Zeichenfolge verwenden, um beispielsweise "#FFFF0000"
die Hintergrundfarbe eines Layouts zu ändern.
Color.HSVToColor
sieht aus wie ein Gewinner, nimmt aber einen float[]
als Parameter.
Bin ich der Lösung überhaupt nahe?
Antworten:
Versuchen Sie die
Color
Klassenmethode:Aus der Android-Dokumentation :
quelle
#000
Werte analysiert ?if(colorString.length() == 4) { colorString = "#" + StringUtils.repeat(colorString.substring(1, 1), 1) + StringUtils.repeat(colorString.substring(2, 2), 1) + StringUtils.repeat(colorString.substring(3, 3), 1) }
Sie einfach: Bitte korrigieren Sie mich, wenn ich falschif(colorString.length() == 4 && colorString[0] == '#')
Versuchen:
quelle
Diese Frage wird für eine Reihe von Suchanfragen im Zusammenhang mit Hex-Farben gestellt, daher werde ich hier eine Zusammenfassung hinzufügen.
Farbe von int
Hex-Farben haben die Form
RRGGBB
oderAARRGGBB
(Alpha, Rot, Grün, Blau). Nach meiner Erfahrung müssen Sie bei derint
direkten Verwendung einesAARRGGBB
Formulars das vollständige Formular verwenden. Wenn Sie nur dasRRGGBB
Formular haben, stellen Sie es einfach voranFF
, um das Alpha (Transparenz) vollständig undurchsichtig zu machen. Hier ist, wie Sie es in Code setzen würden. Die Verwendung0x
am Anfang bedeutet, dass es hexadezimal und nicht Basis 10 ist.Farbe aus String
Wie andere angemerkt haben, können Sie
Color.parseString
so verwendenBeachten Sie, dass der String mit a beginnen muss
#
. BeideRRGGBB
undAARRGGBB
Formate werden unterstützt.Farbe aus XML
Sie sollten Ihre Farben nach Möglichkeit aus XML beziehen. Dies ist die empfohlene Option, da es viel einfacher ist, Farbänderungen an Ihrer App vorzunehmen. Wenn Sie im gesamten Code viele Hex-Farben festlegen, ist es sehr schwierig, diese später zu ändern.
Das Android-Materialdesign hat Farbpaletten mit den bereits konfigurierten Hex-Werten.
Diese Themenfarben werden in Ihrer gesamten App verwendet und sehen folgendermaßen aus:
Farben.xml
Wenn Sie zusätzliche Farben benötigen, sollten Sie Ihre Farbe in zwei Schritten in XML definieren. Benennen Sie zuerst die Farbe des Hex-Werts und dann eine Komponente Ihrer App, die eine bestimmte Farbe erhalten soll. Dies macht es einfach, die Farben später anzupassen. Auch dies ist in colours.xml .
Wenn Sie dann die Farbe im Code festlegen möchten, gehen Sie wie folgt vor:
Android Vordefinierte Farben
Die Farbklasse enthält eine Reihe vordefinierter Farbkonstanten. Sie können es so verwenden.
Andere Farben sind
Color.BLACK
Color.BLUE
Color.CYAN
Color.DKGRAY
Color.GRAY
Color.GREEN
Color.LTGRAY
Color.MAGENTA
Color.RED
Color.TRANSPARENT
Color.WHITE
Color.YELLOW
Anmerkungen
quelle
Konvertieren Sie diese Zeichenfolge in eine
int
Farbe, die insetBackgroundColor
und verwendet werden kannsetTextColor
Die 16 bedeutet, dass es hexadezimal ist und nicht Ihre reguläre 0-9. Das Ergebnis sollte das gleiche sein wie
quelle
#80000000
in diesem Fall die int-Version seinint color = 0x80000000;
. Wenn das nicht funktioniert, stellen Sie eine neue Frage mit mehr Details, damit mehr Leute als ich es bemerken. Denken Sie daran,#80000000
ist eine durchscheinende schwarze Farbe.Es ist
quelle
Versuche dies:
quelle
Ich benutze dies und es funktioniert hervorragend für mich, um jede gewünschte Farbe einzustellen.
Stellen Sie die Farben mit 0-255 für jedes Rot, Grün und Blau ein. Geben Sie dann an einer beliebigen Stelle, an der Sie diese Farbe verwenden möchten, MY_COLOR anstelle von Color.BLUE oder Color.RED oder einer der anderen statischen Farben ein, die die Farbklasse bietet.
Führen Sie einfach eine Google-Suche nach Farbkarten durch und Sie können eine Tabelle mit den richtigen RGB-Codes unter Verwendung von 0-255 finden.
quelle
In Xamarin Verwenden Sie dies
quelle
XML-Datei gespeichert unter res / values / colours.xml:
Dieser Anwendungscode ruft die Farbressource ab:
Dieses Layout-XML wendet die Farbe auf ein Attribut an:
quelle
Versuchen Sie stattdessen, 0xFFF000 zu verwenden, und übergeben Sie dies an die Color.HSVToColor-Methode.
quelle
Wenn Sie eine Farbe in Ihrem XML definieren und damit die Hintergrundfarbe oder etwas anderes ändern möchten, ist diese API diejenige, nach der Sie suchen:
In meinem Beispiel habe ich es für TestView verwendet
quelle
Für verkürzten Hex-Code
quelle