3 回答

TA貢獻1846條經驗 獲得超7個贊
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貢獻1827條經驗 獲得超4個贊
首先,您需要傳遞整數作為函數的參數。String userId請使用代替int userId。如果您仍然想傳遞 String 類型作為參數,則需要將其解析為整數。
其次,您需要在數組中定義所需的所有顏色。
基本上你不能使用Java隨機數內置函數,因為它總是會生成新的隨機數,所以它不會滿足你的需要。
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];
}
如果您傳遞整數作為參數的類型,則可以使用:
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貢獻1757條經驗 獲得超7個贊
使用此功能,您可以從顏色代碼生成隨機顏色,但是如果您需要從用戶獲取顏色,則需要本地數據庫的共享首選項值來保存用戶的顏色
int getUserColourCode(String userId) {
Random rnd = new Random();
int color = Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256));
return color;
}
添加回答
舉報