2017-09-14 2 views
0

Ich habe diese Farben zu erzeugen:erzeugen zufällige dunklere Farben für Textview Hintergrund

Random rnd = new Random(); 
int color = Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256)); 
TexV.setBackgroundColor(color); 

Es funktioniert. Das Problem ist, dass meine textview Textfarbe weiß ist und wenn es helle Farben erzeugt, kann Benutzer seinen Inhalt kaum sehen.

irgendwelche Ideen, wie man nur dunklere Farben erzeugt?

+1

Wenn Sie dunklere Farben wünschen, möchten Sie sicher nicht 256 als oberes Farblimit verwenden? Versuchen Sie, diese Nummer zu halbieren. Auch (verzeih mein Mangel an Wissen darüber, wenn ich falsch liege), aber sicher musst du deinen zufälligen Samen ändern? – Paul

+1

siehe 'Color # HSVToColor()' Methode – pskink

Antwort

2

Zunächst, für echte zufällige Farben, sollten Sie System.currentTimeMillis() als Seed verwenden. Es ist immer garantiert, dass eine neue zufällige Sequenz generiert wird.

Zweitens, wenn Sie dunkle Farben möchten, sollten Sie eine untere Grenze verwenden. Wenn Sie für jede Farbe 255 einstellen, können auch helle Farben angezeigt werden. Wenn Sie dunkle Farben wünschen, müssen Sie eine untere Grenze verwenden. Ich habe keine Ahnung wie dunkel Sie wollen den Hintergrund, so werde ich nicht eine Nummer liefern, müssen Sie selbst herausfinden. Aber mindestens 150 am Limit sollten einige dunkle Farben erzeugen, obwohl, wenn Sie wirklich dunkle Farben wollen, 100 oder 50 besser sein könnten. Sie müssen experimentieren, um das gute Limit zu finden, und ich schlage vor, dass Sie etwas wie Paint.net verwenden und die Farbwerte mischen, um zu sehen, was Ihnen die dunkelsten Farben gibt.

+0

Genau das, was ich sagen wollte, Lunar, aber es ist ein paar Jahre her, seit ich Java benutzt habe ... – Paul

1

Es gibt eine einfachere Methode dafür. Verwenden Sie stattdessen den folgenden Code

int color = Color.argb(255, rnd.nextInt(50), rnd.nextInt(50), rnd.nextInt(50)); 

Es erzeugt relativ dunklere Farben.

Verwandte Themen