亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用某個鍵在 android 中創建隨機顏色(對于相同的鍵,它應該生成相同的顏色)

使用某個鍵在 android 中創建隨機顏色(對于相同的鍵,它應該生成相同的顏色)

慕少森 2024-01-25 15:20:13
我正在開發一個聊天應用程序,為此,我需要為用戶個人資料圖片生成隨機顏色。但我需要為同一個人生成相同的顏色。我有一個唯一的用戶 ID。我不喜歡在生成顏色代碼一次后保存顏色代碼。所以,基本上我需要一種獲取顏色代碼的方法。int getUserColourCode(String userId) {   //code needed.   //It should return random colour code (int) with respect to user id.   //I would like to exclude light shade colours (dark and semi dark colours are preferred).}提前致謝。
查看完整描述

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;

}


查看完整回答
反對 回復 2024-01-25
?
GCT1015

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];

}


查看完整回答
反對 回復 2024-01-25
?
長風秋雁

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;

}


查看完整回答
反對 回復 2024-01-25
  • 3 回答
  • 0 關注
  • 239 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號