Diese Frage taucht bei einer Reihe von Suchanfragen im Zusammenhang mit hexadezimalen Farben auf, so dass ich hier eine Zusammenfassung hinzufügen werde.
Farbe von int
Hex-Farben haben die Form RRGGBB
o AARRGGBB
(Alpha, Rot, Grün, Blau). Meiner Erfahrung nach wird bei der Verwendung eines int
direkt zu verwenden, müssen Sie die vollständige AARRGGBB
Form. Wenn Sie nur die RRGGBB
Form, dann setzen Sie einfach das Präfix FF
um den Alpha-Wert (Transparenz) vollständig undurchsichtig zu machen. Hier ist, wie Sie es in Code setzen würde. verwenden 0x
am Anfang bedeutet, dass es sich um eine Hexadezimalzahl und nicht um die Basis 10 handelt.
int myColor = 0xFF3F51B5;
myView.setBackgroundColor(myColor);
Farbe von String
Wie andere bereits erwähnt haben, können Sie Color.parseColor
so
int myColor = Color.parseColor("#3F51B5");
myView.setBackgroundColor(myColor);
Beachten Sie, dass der String mit einem #
. Beide RRGGBB
et AARRGGBB
Formate werden unterstützt.
Farbe aus XML
Eigentlich sollten Sie Ihre Farben, wann immer möglich, aus XML beziehen. Dies ist die empfohlene Option, weil sie es viel einfacher macht, Farbänderungen in Ihrer Anwendung vorzunehmen. Wenn Sie viele Hex-Farben in Ihrem Code festlegen, ist es sehr mühsam, sie später zu ändern.
Android Material Design verfügt über Farbpaletten mit bereits konfigurierten Hex-Werten.
Diese Themenfarben werden in der gesamten Anwendung verwendet und sehen wie folgt aus:
farben.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="primary">#3F51B5</color>
<color name="primary_dark">#303F9F</color>
<color name="primary_light">#C5CAE9</color>
<color name="accent">#FF4081</color>
<color name="primary_text">#212121</color>
<color name="secondary_text">#757575</color>
<color name="icons">#FFFFFF</color>
<color name="divider">#BDBDBD</color>
</resources>
Wenn Sie zusätzliche Farben benötigen, empfiehlt es sich, Ihre Farbe in zwei Schritten in xml zu definieren. Benennen Sie zunächst die Farbe mit dem Hex-Wert und dann eine Komponente Ihrer Anwendung, die eine bestimmte Farbe erhalten soll. So lassen sich die Farben später leicht anpassen. Nochmals, dies ist in farben.xml .
<color name="orange">#fff3632b</color>
<color name="my_view_background_color">@color/orange</color>
Wenn Sie dann die Farbe im Code einstellen wollen, gehen Sie wie folgt vor:
int myColor = ContextCompat.getColor(context, R.color.my_view_background_color);
myView.setBackgroundColor(myColor);
Android Vordefinierte Farben
Die Klasse Color verfügt über eine Reihe von vordefinierten Farbkonstanten. Sie können sie wie folgt verwenden.
int myColor = Color.BLUE;
myView.setBackgroundColor(myColor);
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