Android棒棒糖联系人颜色
Android lollipop contact color
如何select 联系人徽章的颜色。使用什么算法?
不保存。它使用联系人姓名字符串的哈希码来确定颜色。
示例:
String name = "Harish";
int colors[] = new int[] { Color.RED, Color.GREEN, Color.BLUE};
int chosenColor = colors[Math.abs(name.hashCode()) % colors.length];
我学到了这个answer
您可以试试这样的颜色生成器..
public class ColorGenerator {
public static ColorGenerator DEFAULT;
public static ColorGenerator MATERIAL;
static {
DEFAULT = create(Arrays.asList(
//your list of default tints
));
MATERIAL = create(Arrays.asList(
//your list of material colors
));
}
private final List<Integer> mColors;
private final Random mRandom;
public static ColorGenerator create(List<Integer> colorList) {
return new ColorGenerator(colorList);
}
private ColorGenerator(List<Integer> colorList) {
mColors = colorList;
mRandom = new Random(System.currentTimeMillis());
}
public int getRandomColor() {
return mColors.get(mRandom.nextInt(mColors.size()));
}
public int getColor(Object key) {
return mColors.get(Math.abs(key.hashCode()) % mColors.size());
}
}
如何select 联系人徽章的颜色。使用什么算法?
不保存。它使用联系人姓名字符串的哈希码来确定颜色。
示例:
String name = "Harish";
int colors[] = new int[] { Color.RED, Color.GREEN, Color.BLUE};
int chosenColor = colors[Math.abs(name.hashCode()) % colors.length];
我学到了这个answer
您可以试试这样的颜色生成器..
public class ColorGenerator {
public static ColorGenerator DEFAULT;
public static ColorGenerator MATERIAL;
static {
DEFAULT = create(Arrays.asList(
//your list of default tints
));
MATERIAL = create(Arrays.asList(
//your list of material colors
));
}
private final List<Integer> mColors;
private final Random mRandom;
public static ColorGenerator create(List<Integer> colorList) {
return new ColorGenerator(colorList);
}
private ColorGenerator(List<Integer> colorList) {
mColors = colorList;
mRandom = new Random(System.currentTimeMillis());
}
public int getRandomColor() {
return mColors.get(mRandom.nextInt(mColors.size()));
}
public int getColor(Object key) {
return mColors.get(Math.abs(key.hashCode()) % mColors.size());
}
}