Wie kriege ich die Color Orange?

  • 8 Antworten
  • Letztes Antwortdatum
K

Knoxxx

Fortgeschrittenes Mitglied
0
Hallo,

ich habe in meiner App einen SpanBefehl, wo ich gerne die Farbe Orange hätte: text.setSpan(new ForegroundColorSpan(Color.RED).
Aber iwie gibt es ja nur Black, Blue, Cyan, Red etc. aber kein Orange. Wie bekomme ich denn das Orange hin? Muss ich dazu einen ganz anderen Code nutzen? Oder gibt es da einen Trick?

VG
Knoxxx
 
Hello,
hmm, in der Standardbibliothek gibt es vielleicht nicht alle Farben. Aber du kannst sie dir selbst anlegen. Am besten in einer color.xml unter values.
Bei stackoverflow gibt's da super viele gute Hinweise, die ich dir auch raussuchen würde, bin gerade nur nicht am PC.

Der ursprüngliche Beitrag von 18:08 Uhr wurde um 18:13 Uhr ergänzt:

Nachtrag:
Kannst auch unter der Android Doku von Google nachschauen, dort müsste das ausnahmsweise auch gut erklärt sein :p darüber hinaus findet man auch die den Designrichtlinien entsprechenden Farbtöne. :)
 
In einer color.xml, die du im Values ablegen musst, kannst du die gewünschte Farbe so definieren:
Code:
<resources>
 <color name="orange">#FF8000</color>   
</resources>

beim Farbton musst du ein bisschen rumprobieren, der Code setzt sich aus drei zweistelligen hexdecimalen Zahlen zusammen. Die erste gibt den Rotwert an hier FF (dezimal 255) die zweite den Grünwert, hier 80 (dezimal 128), die letzte den Blauwert, hier 00.

und im Java Code dann so aufrufen:
Code:
this.getResources().getColor(R.color.orange)

Colorcodes kannst du natürlich auch im Internet nachschauen z. B. hier:
http://html-color-codes.info/webfarben_hexcodes/
 
  • Danke
Reaktionen: ui_3k1
Danke, die Seite ist Gold wert. :D
(Hatte bis dato immer nur etwas umständliche gefunden)
 
Erster Treffer wenn man color hex code bei Google eingibt ;-) aber stimmt schon, das Internet ist auch voller schlechter colorpicker, dabei ist es so einfach die in JavaScript zu programmieren,..
 
kosmus schrieb:
In einer color.xml, die du im Values ablegen musst, kannst du die gewünschte Farbe so definieren:
Code:
<resources>
 <color name="orange">#FF8000</color>   
</resources>
beim Farbton musst du ein bisschen rumprobieren, der Code setzt sich aus drei zweistelligen hexdecimalen Zahlen zusammen. Die erste gibt den Rotwert an hier FF (dezimal 255) die zweite den Grünwert, hier 80 (dezimal 128), die letzte den Blauwert, hier 00.

und im Java Code dann so aufrufen:
Code:
this.getResources().getColor(R.color.orange)
Colorcodes kannst du natürlich auch im Internet nachschauen z. B. hier:
HTML Farbencodes

Komisch, wenn ich das so mache, wird es grau. Also jetzt habe ich in meinem Code: text.setSpan(new ForegroundColorSpan(R.color.orange) stehen. Und eine Zeile da drüber this.getResources().getColor(R.color.orange); Was mache ich falsch?

 
Das scheint auch wieder ein Java Grundlagenproblem zusein

this.getResources().getColor(R.color.orange); liefert dir den Farbcode, du musst ihn dann aber auch dem new ForegroundColorSpan() als parameter mitgeben:

Code:
text.setSpan(new ForegroundColorSpan(this.getResources().getColor(R.color.orange));

falls das für dich übersichtlicher ist:

Code:
int myOrange = this.getResources().getColor(R.color.orange);
text.setSpan(new ForegroundColorSpan(myOrange));

Da hatte ich noch eine ) vergessen...
 
Zuletzt bearbeitet:
Vielen Dank, hat geklappt!!!!
 
Zur Erklärung warum es grau bei dir war:
text.setSpan(new ForegroundColorSpan(R.color.orange)

R.color.orange ist nur eine Zahl (int um genau zu sein) die von Eclipse bzw dem Android SDK generiert wird um einfacher z.B. einfacher auf die Farben zugreifen zu können.

FF8000 ist auch nur eine Zahl (16744448)
4342338 ist z.B ein dunkles Grau.

Bei dir war R.color.orange (mehr oder weniger) zufällig eine Zahl die ein Grau ergibt.
Eigentlich hast du dann:
text.setSpan(new ForegroundColorSpan(4342338) eingegeben.
(Bzw. vermutlich nicht exakt die Zahl ;))
 
Zurück
Oben Unten