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;
}
添加回答
举报