方法一,生成随机颜色,这种方法简单快速,但是容易产生一些自己不太满意的颜色,比如纯的黑色、白色等会与文本颜色一样的颜色,一种实现代码如下:
static int randomColor(int alpha) {
Random rnd = new Random();
alpha = Math.min(Math.max(1, alpha), 255);
return Color.argb(alpha, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256));
}
方法二,事先在XML文件中定义好自己所需的颜色列表,之后随机选取其中的颜色,这种方法能更好的使用自己喜好的颜色,代码如下:
xml部分:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
<color name="blue" type="color">#FF33B5E5</color>
<color name="purple" type="color">#FFAA66CC</color>
<color name="green" type="color">#FF99CC00</color>
<color name="orange" type="color">#FFFFBB33</color>
<color name="red" type="color">#FFFF4444</color>
<color name="darkBlue" type="color">#FF0099CC</color>
<color name="darkPurple" type="color">#FF9933CC</color>
<color name="darkGreen" type="color">#FF669900</color>
<color name="darkOrange" type="color">#FFFF8800</color>
<color name="darkRed" type="color">#FFCC0000</color>
<integer-array name="customizedColors">
<item>@color/blue</item>
<item>@color/purple</item>
<item>@color/green</item>
<item>@color/orange</item>
<item>@color/red</item>
<item>@color/darkBlue</item>
<item>@color/darkPurple</item>
<item>@color/darkGreen</item>
<item>@color/darkOrange</item>
<item>@color/darkRed</item>
</integer-array>
</resources>
android使用部分
static int getCustomizedColor(Activity activity) {
int[] customizedColors = activity.getResources().getIntArray(R.array.customizedColors);
int customizedColor = customizedColors[new Random().nextInt(customizedColors.length)];
return customizedColor;
}
以上,除了这两种方案之外,其实还可以通过自定义paint方法的方式来实现的。
参考文章:
http://stackoverflow.com/questions/5280367/android-generate-random-color-on-click
http://stackoverflow.com/questions/25923116/android-set-random-colour-background-on-create