設定隨機顏色的兩個方法

weixin_34087301發表於2017-01-01

方法一,生成隨機顏色,這種方法簡單快速,但是容易產生一些自己不太滿意的顏色,比如純的黑色、白色等會與文字顏色一樣的顏色,一種實現程式碼如下:

    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

相關文章