Android: Konvertierung von Farbe nach Int

Lesezeit: 1 Minute

Benutzer-Avatar
Caner

Das wundert mich Paint Klasse hat Nr setColor(Color c) Methode. Ich möchte Folgendes tun:

public void setColor(Color color) {
/* ... */
Paint p = new Paint();
p.setColor(color); // set color takes only int as a paramter :(
/* ... */
}

Also jede einfache Möglichkeit, umzuwandeln Color zu int?

  • android.graphics.Color ist eine Sammlung statischer Methoden. Es soll nicht initialisiert werden. Wie haben Sie das geschafft?

    – Dmitri Rjadnenko

    3. August 2011 um 12:55 Uhr

  • du hast recht, danke, bitte poste es nochmal als antwort 🙂

    – Kaner

    3. August 2011 um 12:56 Uhr

Benutzer-Avatar
Dhruv Raval

Irgendein color analysieren int einfachste zwei Wege hier:

1) Systemfarbe abrufen

int redColorValue = Color.RED;

2) Jeder Farb-Hex-Code als String-Argument

int greenColorValue = Color.parseColor("#00ff00")

MUSS ERINNERN im obigen Code Color Klasse muss sein android.graphics...!

Benutzer-Avatar
Scherif el-Khatib

Alle Methoden und Variablen in Color sind statisch. Sie können ein Color-Objekt nicht instanziieren.

Offizielle Farbdokumentation

Die Color-Klasse definiert Methoden zum Erstellen und Konvertieren von Farbints.

Farben werden als gepackte Ints dargestellt, die aus 4 Bytes bestehen: Alpha, Rot, Grün, Blau.

Die Werte sind nicht vormultipliziert, dh jede Transparenz wird nur in der Alpha-Komponente und nicht in den Farbkomponenten gespeichert.

Die Komponenten werden wie folgt gespeichert (alpha << 24) | (rot << 16) | (grün << 8) | blau.

Jede Komponente liegt zwischen 0 und 255, wobei 0 keinen Beitrag für diese Komponente bedeutet und 255 100 % Beitrag bedeutet.

Somit wäre undurchsichtiges Schwarz 0xFF000000 (100 % undurchsichtig, aber keine Beiträge von Rot, Grün oder Blau), und undurchsichtiges Weiß wäre 0xFFFFFFFF

  • Danke, ich hatte eine Reihe von Farbdeklarationen in einer meiner Klassen und es funktioniert nicht. Jetzt weiß ich warum.

    – Paul McCarthy

    6. Februar 2020 um 0:43 Uhr

Paint hat eine festgelegte Farbfunktion.

/**
 * Set the paint's color. Note that the color is an int containing alpha
 * as well as r,g,b. This 32bit value is not premultiplied, meaning that
 * its alpha can be any value, regardless of the values of r,g,b.
 * See the Color class for more details.
 *
 * @param color The new color (including alpha) to set in the paint.
 */
public native void setColor(@ColorInt int color);

Als Android-Entwickler stelle ich die Farbe so ein …

paint.setColor(getResources().getColor(R.color.xxx));

Ich definiere den Farbwert auf color.xml so etwas wie …

<color name="xxx">#008fd2</color>

Übrigens, wenn Sie den Hex-RGB-Wert eines bestimmten Farbwerts möchten, können Sie die Website wie folgt überprüfen: http://www.rapidtables.com/web/color/RGB_Color.htm

Ich hoffe das hilft ! Viel Spaß beim Codieren!

Benutzer-Avatar
ngesch

R.color.black oder einige Farben sind offensichtlich ganze Zahlen. Es braucht einen RGB-Wert. Sie können Ihr eigenes Like geben #FF123454 die verschiedene Primärfarben darstellt

Benutzer-Avatar
Anzeigen

Ich denke, es sollte sein R.Farbe.Schwarz

Sehen Sie sich auch Konvertieren von Android-Farbzeichenfolgen zur Laufzeit in int an

1055940cookie-checkAndroid: Konvertierung von Farbe nach Int

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy