3 回答

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊
int getUserColourCode(String userId) { StringBuilder input1 = new StringBuilder();
input1.append(userId);
input1=input1.reverse();
String pair[]={"0","0","0","0","0","0","0","0"};
char[] character = input1.toString().toCharArray();
for(int i=0;i<character.length;i++)
{
pair[i]=String.valueOf(character[i]);
}
int color = Color.argb((Integer.parseInt(pair[0]+pair[1])*2)+50, (Integer.parseInt(pair[2]+pair[3])*2)+50, (Integer.parseInt(pair[4]+pair[5])*2)+50, (Integer.parseInt(pair[6]+pair[7])*2)+50);
return color;
}

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個(gè)贊
首先,您需要傳遞整數(shù)作為函數(shù)的參數(shù)。String userId請(qǐng)使用代替int userId。如果您仍然想傳遞 String 類(lèi)型作為參數(shù),則需要將其解析為整數(shù)。
其次,您需要在數(shù)組中定義所需的所有顏色。
基本上你不能使用Java隨機(jī)數(shù)內(nèi)置函數(shù),因?yàn)樗偸菚?huì)生成新的隨機(jī)數(shù),所以它不會(huì)滿(mǎn)足你的需要。
int getUserColourCode(String userId) {
int id = Integer.parseInt(userId);
//create integer color as much as you want,
int[] colors = {Color.BLUE, Color.CYAN, Color.MAGENTA, Color.parseColor("#ff00f8")};
int colorLength = colors.length - 1;
int randomNumber = id % colorLength;
return colors[randomNumber];
}
如果您傳遞整數(shù)作為參數(shù)的類(lèi)型,則可以使用:
int getUserColourCode(int userId) {
//create integer color as much as you want,
int[] colors = {Color.BLUE, Color.CYAN, Color.MAGENTA, Color.parseColor("#ff00f8")};
int colorLength = colors.length - 1;
int randomNumber = userId % colorLength;
return colors[randomNumber];
}

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊
使用此功能,您可以從顏色代碼生成隨機(jī)顏色,但是如果您需要從用戶(hù)獲取顏色,則需要本地?cái)?shù)據(jù)庫(kù)的共享首選項(xiàng)值來(lái)保存用戶(hù)的顏色
int getUserColourCode(String userId) {
Random rnd = new Random();
int color = Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256));
return color;
}
添加回答
舉報(bào)