2017-09-14 33 views
0

我有這樣產生的顏色:生成隨機較深顏色的TextView背景

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

它的工作原理。問題是我的textview文本顏色是白色的,當它生成淺色時,用戶幾乎看不到它的內容。

任何想法如何產生只有較暗的顏色?

+1

如果你想要更深的顏色,當然你不想使用256作爲顏色上限?嘗試將該數字減半。另外(原諒我缺乏這方面的知識,如果我錯了),但肯定你需要改變你的隨機種子? – Paul

+1

查看'顏色#HSVToColor()'方法 – pskink

回答

2

首先,對於真正的隨機顏色,您應該使用System.currentTimeMillis()作爲種子。始終保證產生一個新的隨機序列。其次,如果你想要深色,你應該使用較低的邊界。將它們設置爲255,每種顏色都可以顯示明亮的顏色。如果你想要深色,你必須使用一個下限。我沒有線索如何黑暗你想要的背景,所以我不會提供一個數字,你必須自己弄清楚。但至少有150個限制會產生一些暗色,但如果你想要非常黑的顏色,100或50可能會更好。你需要嘗試找到一個好的限制,並且我誠實地建議你使用類似Paint.net的東西,並且混合顏色值來查看什麼給你最黑暗的顏色。

+0

正是我想說的,月球,但是從我使用Java之後的幾年... – Paul

1

有一個更簡單的方法。請使用以下代碼代替

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

它會產生相對較暗的顏色。