Comment recevoir au hasard une Couleur de conception matérielle?


Google a sesColor - Guidelines , alors comment recevoir une couleur au hasard? Est-il un moyen de spécifier un numéro de la table et de recevoir une couleur aléatoire de toutes les couleurs de la table?

Par exemple getMatColor(100);:

entrez la description de l'image ici


MODIFIER-Résultat: (Couleurs de l'icône)

entrez la description de l'image ici

Author: Tomblarom, 2015-09-18

5 answers

Mieux vaut tard que jamais.

Ma nouvelle réponse si le but réel est d'obtenir une couleur de matériau aléatoire pour un type de couleur.

Ajoutez le tableau.fichier xml (à partir de @8m47x)

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <array name="mdcolor_50">
        <item name="red_50" type="color">#fde0dc</item>
        <item name="pink_50" type="color">#fce4ec</item>
        <item name="purple_50" type="color">#f3e5f5</item>
        <item name="deep_purple_50" type="color">#ede7f6</item>
        <item name="indigo_50" type="color">#e8eaf6</item>
        <item name="blue_50" type="color">#e7e9fd</item>
        <item name="light_blue_50" type="color">#e1f5fe</item>
        <item name="cyan_50" type="color">#e0f7fa</item>
        <item name="teal_50" type="color">#e0f2f1</item>
        <item name="green_50" type="color">#d0f8ce</item>
        <item name="light_green_50" type="color">#f1f8e9</item>
        <item name="lime_50" type="color">#f9fbe7</item>
        <item name="yellow_50" type="color">#fffde7</item>
        <item name="amber_50" type="color">#fff8e1</item>
        <item name="orange_50" type="color">#fff3e0</item>
        <item name="deep_orange_50" type="color">#fbe9e7</item>
        <item name="brown_50" type="color">#efebe9</item>
        <item name="grey_50" type="color">#fafafa</item>
        <item name="blue_grey_50" type="color">#eceff1</item>
    </array>
    <array name="mdcolor_100">
        <item name="red_100" type="color">#f9bdbb</item>
        <item name="pink_100" type="color">#f8bbd0</item>
        <item name="purple_100" type="color">#e1bee7</item>
        <item name="deep_purple_100" type="color">#d1c4e9</item>
        <item name="indigo_100" type="color">#c5cae9</item>
        <item name="blue_100" type="color">#d0d9ff</item>
        <item name="light_blue_100" type="color">#b3e5fc</item>
        <item name="cyan_100" type="color">#b2ebf2</item>
        <item name="teal_100" type="color">#b2dfdb</item>
        <item name="green_100" type="color">#a3e9a4</item>
        <item name="light_green_100" type="color">#dcedc8</item>
        <item name="lime_100" type="color">#f0f4c3</item>
        <item name="yellow_100" type="color">#fff9c4</item>
        <item name="amber_100" type="color">#ffecb3</item>
        <item name="orange_100" type="color">#ffe0b2</item>
        <item name="deep_orange_100" type="color">#ffccbc</item>
        <item name="brown_100" type="color">#d7ccc8</item>
        <item name="grey_100" type="color">#f5f5f5</item>
        <item name="blue_grey_100" type="color">#cfd8dc</item>
    </array>
    <array name="mdcolor_200">
        <item name="red_200" type="color">#f69988</item>
        <item name="pink_200" type="color">#f48fb1</item>
        <item name="purple_200" type="color">#ce93d8</item>
        <item name="deep_purple_200" type="color">#b39ddb</item>
        <item name="indigo_200" type="color">#9fa8da</item>
        <item name="blue_200" type="color">#afbfff</item>
        <item name="light_blue_200" type="color">#81d4fa</item>
        <item name="cyan_200" type="color">#80deea</item>
        <item name="teal_200" type="color">#80cbc4</item>
        <item name="green_200" type="color">#72d572</item>
        <item name="light_green_200" type="color">#c5e1a5</item>
        <item name="lime_200" type="color">#e6ee9c</item>
        <item name="yellow_200" type="color">#fff59d</item>
        <item name="orange_200" type="color">#ffcc80</item>
        <item name="deep_orange_200" type="color">#ffab91</item>
        <item name="brown_200" type="color">#bcaaa4</item>
        <item name="grey_200" type="color">#eeeeee</item>
        <item name="blue_grey_200" type="color">#b0bec5</item>
    </array>
    <array name="mdcolor_300">
        <item name="red_300" type="color">#f36c60</item>
        <item name="pink_300" type="color">#f06292</item>
        <item name="purple_300" type="color">#ba68c8</item>
        <item name="deep_purple_300" type="color">#9575cd</item>
        <item name="indigo_300" type="color">#7986cb</item>
        <item name="blue_300" type="color">#91a7ff</item>
        <item name="light_blue_300" type="color">#4fc3f7</item>
        <item name="cyan_300" type="color">#4dd0e1</item>
        <item name="teal_300" type="color">#4db6ac</item>
        <item name="green_300" type="color">#42bd41</item>
        <item name="light_green_300" type="color">#aed581</item>
        <item name="lime_300" type="color">#dce775</item>
        <item name="yellow_300" type="color">#fff176</item>
        <item name="orange_300" type="color">#ffb74d</item>
        <item name="deep_orange_300" type="color">#ff8a65</item>
        <item name="brown_300" type="color">#a1887f</item>
        <item name="grey_300" type="color">#e0e0e0</item>
        <item name="blue_grey_300" type="color">#90a4ae</item>
    </array>
    <array name="mdcolor_400">
        <item name="red_400" type="color">#e84e40</item>
        <item name="pink_400" type="color">#ec407a</item>
        <item name="purple_400" type="color">#ab47bc</item>
        <item name="deep_purple_400" type="color">#7e57c2</item>
        <item name="indigo_400" type="color">#5c6bc0</item>
        <item name="blue_400" type="color">#738ffe</item>
        <item name="light_blue_400" type="color">#29b6f6</item>
        <item name="cyan_400" type="color">#26c6da</item>
        <item name="teal_400" type="color">#26a69a</item>
        <item name="green_400" type="color">#2baf2b</item>
        <item name="light_green_400" type="color">#9ccc65</item>
        <item name="lime_400" type="color">#d4e157</item>
        <item name="yellow_400" type="color">#ffee58</item>
        <item name="orange_400" type="color">#ffa726</item>
        <item name="deep_orange_400" type="color">#ff7043</item>
        <item name="brown_400" type="color">#8d6e63</item>
        <item name="grey_400" type="color">#bdbdbd</item>
        <item name="blue_grey_400" type="color">#78909c</item>
    </array>
    <array name="mdcolor_500">
        <item name="red_500" type="color">#e51c23</item>
        <item name="pink_500" type="color">#e91e63</item>
        <item name="purple_500" type="color">#9c27b0</item>
        <item name="deep_purple_500" type="color">#673ab7</item>
        <item name="indigo_500" type="color">#3f51b5</item>
        <item name="blue_500" type="color">#5677fc</item>
        <item name="light_blue_500" type="color">#03a9f4</item>
        <item name="cyan_500" type="color">#00bcd4</item>
        <item name="teal_500" type="color">#009688</item>
        <item name="green_500" type="color">#259b24</item>
        <item name="light_green_500" type="color">#8bc34a</item>
        <item name="lime_500" type="color">#cddc39</item>
        <item name="yellow_500" type="color">#ffeb3b</item>
        <item name="orange_500" type="color">#ff9800</item>
        <item name="deep_orange_500" type="color">#ff5722</item>
        <item name="brown_500" type="color">#795548</item>
        <item name="grey_500" type="color">#9e9e9e</item>
        <item name="blue_grey_500" type="color">#607d8b</item>
    </array>
    <array name="mdcolor_600">
        <item name="red_600" type="color">#dd191d</item>
        <item name="pink_600" type="color">#d81b60</item>
        <item name="purple_600" type="color">#8e24aa</item>
        <item name="deep_purple_600" type="color">#5e35b1</item>
        <item name="indigo_600" type="color">#3949ab</item>
        <item name="blue_600" type="color">#4e6cef</item>
        <item name="light_blue_600" type="color">#039be5</item>
        <item name="cyan_600" type="color">#00acc1</item>
        <item name="teal_600" type="color">#00897b</item>
        <item name="green_600" type="color">#0a8f08</item>
        <item name="light_green_600" type="color">#7cb342</item>
        <item name="lime_600" type="color">#c0ca33</item>
        <item name="yellow_600" type="color">#fdd835</item>
        <item name="orange_600" type="color">#fb8c00</item>
        <item name="deep_orange_600" type="color">#f4511e</item>
        <item name="brown_600" type="color">#6d4c41</item>
        <item name="grey_600" type="color">#757575</item>
        <item name="blue_grey_600" type="color">#546e7a</item>
    </array>
    <array name="mdcolor_700">
        <item name="red_700" type="color">#d01716</item>
        <item name="pink_700" type="color">#c2185b</item>
        <item name="purple_700" type="color">#7b1fa2</item>
        <item name="deep_purple_700" type="color">#512da8</item>
        <item name="indigo_700" type="color">#303f9f</item>
        <item name="blue_700" type="color">#455ede</item>
        <item name="light_blue_700" type="color">#0288d1</item>
        <item name="cyan_700" type="color">#0097a7</item>
        <item name="teal_700" type="color">#00796b</item>
        <item name="green_700" type="color">#0a7e07</item>
        <item name="light_green_700" type="color">#689f38</item>
        <item name="lime_700" type="color">#afb42b</item>
        <item name="yellow_700" type="color">#fbc02d</item>
        <item name="orange_700" type="color">#f57c00</item>
        <item name="deep_orange_700" type="color">#e64a19</item>
        <item name="brown_700" type="color">#5d4037</item>
        <item name="grey_700" type="color">#616161</item>
        <item name="blue_grey_700" type="color">#455a64</item>
    </array>
    <array name="mdcolor_800">
        <item name="red_800" type="color">#c41411</item>
        <item name="pink_800" type="color">#ad1457</item>
        <item name="purple_800" type="color">#6a1b9a</item>
        <item name="deep_purple_800" type="color">#4527a0</item>
        <item name="indigo_800" type="color">#283593</item>
        <item name="blue_800" type="color">#3b50ce</item>
        <item name="light_blue_800" type="color">#0277bd</item>
        <item name="cyan_800" type="color">#00838f</item>
        <item name="teal_800" type="color">#00695c</item>
        <item name="green_800" type="color">#056f00</item>
        <item name="light_green_800" type="color">#558b2f</item>
        <item name="lime_800" type="color">#9e9d24</item>
        <item name="yellow_800" type="color">#f9a825</item>
        <item name="orange_800" type="color">#ef6c00</item>
        <item name="deep_orange_800" type="color">#d84315</item>
        <item name="brown_800" type="color">#4e342e</item>
        <item name="grey_800" type="color">#424242</item>
        <item name="blue_grey_800" type="color">#37474f</item>
    </array>
    <array name="mdcolor_900">
        <item name="red_900" type="color">#b0120a</item>
        <item name="pink_900" type="color">#880e4f</item>
        <item name="purple_900" type="color">#4a148c</item>
        <item name="deep_purple_900" type="color">#311b92</item>
        <item name="indigo_900" type="color">#1a237e</item>
        <item name="blue_900" type="color">#2a36b1</item>
        <item name="light_blue_900" type="color">#01579b</item>
        <item name="cyan_900" type="color">#006064</item>
        <item name="teal_900" type="color">#004d40</item>
        <item name="green_900" type="color">#0d5302</item>
        <item name="light_green_900" type="color">#33691e</item>
        <item name="lime_900" type="color">#827717</item>
        <item name="yellow_900" type="color">#f57f17</item>
        <item name="orange_900" type="color">#e65100</item>
        <item name="deep_orange_900" type="color">#bf360c</item>
        <item name="brown_900" type="color">#3e2723</item>
        <item name="grey_900" type="color">#212121</item>
        <item name="blue_grey_900" type="color">#263238</item>
    </array>
    <array name="mdcolor_A100">
        <item name="red_A100" type="color">#ff7997</item>
        <item name="pink_A100" type="color">#ff80ab</item>
        <item name="purple_A100" type="color">#ea80fc</item>
        <item name="deep_purple_A100" type="color">#b388ff</item>
        <item name="indigo_A100" type="color">#8c9eff</item>
        <item name="blue_A100" type="color">#a6baff</item>
        <item name="light_blue_A100" type="color">#80d8ff</item>
        <item name="cyan_A100" type="color">#84ffff</item>
        <item name="teal_A100" type="color">#a7ffeb</item>
        <item name="green_A100" type="color">#a2f78d</item>
        <item name="light_green_A100" type="color">#ccff90</item>
        <item name="lime_A100" type="color">#f4ff81</item>
        <item name="yellow_A100" type="color">#ffff8d</item>
        <item name="orange_A100" type="color">#ffd180</item>
        <item name="deep_orange_A100" type="color">#ff9e80</item>
    </array>
    <array name="mdcolor_A200">
        <item name="red_A200" type="color">#ff5177</item>
        <item name="pink_A200" type="color">#ff4081</item>
        <item name="purple_A200" type="color">#e040fb</item>
        <item name="deep_purple_A200" type="color">#7c4dff</item>
        <item name="indigo_A200" type="color">#536dfe</item>
        <item name="blue_A200" type="color">#6889ff</item>
        <item name="light_blue_A200" type="color">#40c4ff</item>
        <item name="cyan_A200" type="color">#18ffff</item>
        <item name="teal_A200" type="color">#64ffda</item>
        <item name="green_A200" type="color">#5af158</item>
        <item name="light_green_A200" type="color">#b2ff59</item>
        <item name="lime_A200" type="color">#eeff41</item>
        <item name="yellow_A200" type="color">#ffff00</item>
        <item name="orange_A200" type="color">#ffab40</item>
        <item name="deep_orange_A200" type="color">#ff6e40</item>
    </array>
    <array name="mdcolor_A400">
        <item name="red_A400" type="color">#ff2d6f</item>
        <item name="pink_A400" type="color">#f50057</item>
        <item name="purple_A400" type="color">#d500f9</item>
        <item name="deep_purple_A400" type="color">#651fff</item>
        <item name="indigo_A400" type="color">#3d5afe</item>
        <item name="blue_A400" type="color">#4d73ff</item>
        <item name="light_blue_A400" type="color">#00b0ff</item>
        <item name="cyan_A400" type="color">#00e5ff</item>
        <item name="teal_A400" type="color">#1de9b6</item>
        <item name="green_A400" type="color">#14e715</item>
        <item name="light_green_A400" type="color">#76ff03</item>
        <item name="lime_A400" type="color">#c6ff00</item>
        <item name="yellow_A400" type="color">#ffea00</item>
        <item name="orange_A400" type="color">#ff9100</item>
        <item name="deep_orange_A400" type="color">#ff3d00</item>
    </array>
    <array name="mdcolor_A700">
        <item name="red_A700" type="color">#e00032</item>
        <item name="pink_A700" type="color">#c51162</item>
        <item name="purple_A700" type="color">#aa00ff</item>
        <item name="deep_purple_A700" type="color">#6200ea</item>
        <item name="indigo_A700" type="color">#304ffe</item>
        <item name="blue_A700" type="color">#4d69ff</item>
        <item name="light_blue_A700" type="color">#0091ea</item>
        <item name="cyan_A700" type="color">#00b8d4</item>
        <item name="teal_A700" type="color">#00bfa5</item>
        <item name="green_A700" type="color">#12c700</item>
        <item name="light_green_A700" type="color">#64dd17</item>
        <item name="lime_A700" type="color">#aeea00</item>
        <item name="yellow_A700" type="color">#ffd600</item>
        <item name="orange_A700" type="color">#ff6d00</item>
        <item name="deep_orange_A700" type="color">#dd2c00</item>
    </array>
    <array name="extra">
        <item name="grey_1000b" type="color">#000000</item>
        <item name="grey_1000w" type="color">#ffffff</item>
    </array>

</resources>

Ajoutez la méthode suivante pour choisir une couleur aléatoire à partir d'un type parent

private int getMatColor(String typeColor)
{
    int returnColor = Color.BLACK;
    int arrayId = getResources().getIdentifier("mdcolor_" + typeColor, "array", getApplicationContext().getPackageName());

    if (arrayId != 0)
    {
        TypedArray colors = getResources().obtainTypedArray(arrayId);
        int index = (int) (Math.random() * colors.length());
        returnColor = colors.getColor(index, Color.BLACK);
        colors.recycle();
    }
    return returnColor;
}

L'Utilisation de

txt.setTextColor(getMatColor("500"));
 43
Author: Tibox, 2015-10-27 16:29:22

Si vous voulez quelque chose qui fonctionne avec un ancien SDK, vous pouvez essayer de cette façon:

TypedArray colors = getResources().obtainTypedArray(R.array.loading_colors);
int index = (int) (Math.random() * colors .length());
int color = colors.getColor(index, Color.BLACK);
textView.setTextColor(color);
colors.recycle();

Vous devez déclarer vos couleurs dans un tableau.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <array name="loading_colors">
        <item name="red_50" type="color">#fde0dc</item>
        <item name="red_100" type="color">#f9bdbb</item>
        <item name="red_200" type="color">#f69988</item>
        <item name="red_300" type="color">#f36c60</item>
        <item name="red_400" type="color">#e84e40</item>
        <item name="red_500" type="color">#e51c23</item>
        <item name="red_600" type="color">#dd191d</item>
        <item name="red_700" type="color">#d01716</item>
        <item name="red_800" type="color">#c41411</item>
        <item name="red_900" type="color">#b0120a</item>
        <item name="red_A100" type="color">#ff7997</item>
        <item name="red_A200" type="color">#ff5177</item>
        <item name="red_A400" type="color">#ff2d6f</item>
        <item name="red_A700" type="color">#e00032</item>
        <item name="pink_50" type="color">#fce4ec</item>
        <item name="pink_100" type="color">#f8bbd0</item>
        <item name="pink_200" type="color">#f48fb1</item>
        <item name="pink_300" type="color">#f06292</item>
        <item name="pink_400" type="color">#ec407a</item>
        <item name="pink_500" type="color">#e91e63</item>
        <item name="pink_600" type="color">#d81b60</item>
        <item name="pink_700" type="color">#c2185b</item>
        <item name="pink_800" type="color">#ad1457</item>
        <item name="pink_900" type="color">#880e4f</item>
        <item name="pink_A100" type="color">#ff80ab</item>
        <item name="pink_A200" type="color">#ff4081</item>
        <item name="pink_A400" type="color">#f50057</item>
        <item name="pink_A700" type="color">#c51162</item>
        <item name="purple_50" type="color">#f3e5f5</item>
        <item name="purple_100" type="color">#e1bee7</item>
        <item name="purple_200" type="color">#ce93d8</item>
        <item name="purple_300" type="color">#ba68c8</item>
        <item name="purple_400" type="color">#ab47bc</item>
        <item name="purple_500" type="color">#9c27b0</item>
        <item name="purple_600" type="color">#8e24aa</item>
        <item name="purple_700" type="color">#7b1fa2</item>
        <item name="purple_800" type="color">#6a1b9a</item>
        <item name="purple_900" type="color">#4a148c</item>
        <item name="purple_A100" type="color">#ea80fc</item>
        <item name="purple_A200" type="color">#e040fb</item>
        <item name="purple_A400" type="color">#d500f9</item>
        <item name="purple_A700" type="color">#aa00ff</item>
        <item name="deep_purple_50" type="color">#ede7f6</item>
        <item name="deep_purple_100" type="color">#d1c4e9</item>
        <item name="deep_purple_200" type="color">#b39ddb</item>
        <item name="deep_purple_300" type="color">#9575cd</item>
        <item name="deep_purple_400" type="color">#7e57c2</item>
        <item name="deep_purple_500" type="color">#673ab7</item>
        <item name="deep_purple_600" type="color">#5e35b1</item>
        <item name="deep_purple_700" type="color">#512da8</item>
        <item name="deep_purple_800" type="color">#4527a0</item>
        <item name="deep_purple_900" type="color">#311b92</item>
        <item name="deep_purple_A100" type="color">#b388ff</item>
        <item name="deep_purple_A200" type="color">#7c4dff</item>
        <item name="deep_purple_A400" type="color">#651fff</item>
        <item name="deep_purple_A700" type="color">#6200ea</item>
        <item name="indigo_50" type="color">#e8eaf6</item>
        <item name="indigo_100" type="color">#c5cae9</item>
        <item name="indigo_200" type="color">#9fa8da</item>
        <item name="indigo_300" type="color">#7986cb</item>
        <item name="indigo_400" type="color">#5c6bc0</item>
        <item name="indigo_500" type="color">#3f51b5</item>
        <item name="indigo_600" type="color">#3949ab</item>
        <item name="indigo_700" type="color">#303f9f</item>
        <item name="indigo_800" type="color">#283593</item>
        <item name="indigo_900" type="color">#1a237e</item>
        <item name="indigo_A100" type="color">#8c9eff</item>
        <item name="indigo_A200" type="color">#536dfe</item>
        <item name="indigo_A400" type="color">#3d5afe</item>
        <item name="indigo_A700" type="color">#304ffe</item>
        <item name="blue_50" type="color">#e7e9fd</item>
        <item name="blue_100" type="color">#d0d9ff</item>
        <item name="blue_200" type="color">#afbfff</item>
        <item name="blue_300" type="color">#91a7ff</item>
        <item name="blue_400" type="color">#738ffe</item>
        <item name="blue_500" type="color">#5677fc</item>
        <item name="blue_600" type="color">#4e6cef</item>
        <item name="blue_700" type="color">#455ede</item>
        <item name="blue_800" type="color">#3b50ce</item>
        <item name="blue_900" type="color">#2a36b1</item>
        <item name="blue_A100" type="color">#a6baff</item>
        <item name="blue_A200" type="color">#6889ff</item>
        <item name="blue_A400" type="color">#4d73ff</item>
        <item name="blue_A700" type="color">#4d69ff</item>
        <item name="light_blue_50" type="color">#e1f5fe</item>
        <item name="light_blue_100" type="color">#b3e5fc</item>
        <item name="light_blue_200" type="color">#81d4fa</item>
        <item name="light_blue_300" type="color">#4fc3f7</item>
        <item name="light_blue_400" type="color">#29b6f6</item>
        <item name="light_blue_500" type="color">#03a9f4</item>
        <item name="light_blue_600" type="color">#039be5</item>
        <item name="light_blue_700" type="color">#0288d1</item>
        <item name="light_blue_800" type="color">#0277bd</item>
        <item name="light_blue_900" type="color">#01579b</item>
        <item name="light_blue_A100" type="color">#80d8ff</item>
        <item name="light_blue_A200" type="color">#40c4ff</item>
        <item name="light_blue_A400" type="color">#00b0ff</item>
        <item name="light_blue_A700" type="color">#0091ea</item>
        <item name="cyan_50" type="color">#e0f7fa</item>
        <item name="cyan_100" type="color">#b2ebf2</item>
        <item name="cyan_200" type="color">#80deea</item>
        <item name="cyan_300" type="color">#4dd0e1</item>
        <item name="cyan_400" type="color">#26c6da</item>
        <item name="cyan_500" type="color">#00bcd4</item>
        <item name="cyan_600" type="color">#00acc1</item>
        <item name="cyan_700" type="color">#0097a7</item>
        <item name="cyan_800" type="color">#00838f</item>
        <item name="cyan_900" type="color">#006064</item>
        <item name="cyan_A100" type="color">#84ffff</item>
        <item name="cyan_A200" type="color">#18ffff</item>
        <item name="cyan_A400" type="color">#00e5ff</item>
        <item name="cyan_A700" type="color">#00b8d4</item>
        <item name="teal_50" type="color">#e0f2f1</item>
        <item name="teal_100" type="color">#b2dfdb</item>
        <item name="teal_200" type="color">#80cbc4</item>
        <item name="teal_300" type="color">#4db6ac</item>
        <item name="teal_400" type="color">#26a69a</item>
        <item name="teal_500" type="color">#009688</item>
        <item name="teal_600" type="color">#00897b</item>
        <item name="teal_700" type="color">#00796b</item>
        <item name="teal_800" type="color">#00695c</item>
        <item name="teal_900" type="color">#004d40</item>
        <item name="teal_A100" type="color">#a7ffeb</item>
        <item name="teal_A200" type="color">#64ffda</item>
        <item name="teal_A400" type="color">#1de9b6</item>
        <item name="teal_A700" type="color">#00bfa5</item>
        <item name="green_50" type="color">#d0f8ce</item>
        <item name="green_100" type="color">#a3e9a4</item>
        <item name="green_200" type="color">#72d572</item>
        <item name="green_300" type="color">#42bd41</item>
        <item name="green_400" type="color">#2baf2b</item>
        <item name="green_500" type="color">#259b24</item>
        <item name="green_600" type="color">#0a8f08</item>
        <item name="green_700" type="color">#0a7e07</item>
        <item name="green_800" type="color">#056f00</item>
        <item name="green_900" type="color">#0d5302</item>
        <item name="green_A100" type="color">#a2f78d</item>
        <item name="green_A200" type="color">#5af158</item>
        <item name="green_A400" type="color">#14e715</item>
        <item name="green_A700" type="color">#12c700</item>
        <item name="light_green_50" type="color">#f1f8e9</item>
        <item name="light_green_100" type="color">#dcedc8</item>
        <item name="light_green_200" type="color">#c5e1a5</item>
        <item name="light_green_300" type="color">#aed581</item>
        <item name="light_green_400" type="color">#9ccc65</item>
        <item name="light_green_500" type="color">#8bc34a</item>
        <item name="light_green_600" type="color">#7cb342</item>
        <item name="light_green_700" type="color">#689f38</item>
        <item name="light_green_800" type="color">#558b2f</item>
        <item name="light_green_900" type="color">#33691e</item>
        <item name="light_green_A100" type="color">#ccff90</item>
        <item name="light_green_A200" type="color">#b2ff59</item>
        <item name="light_green_A400" type="color">#76ff03</item>
        <item name="light_green_A700" type="color">#64dd17</item>
        <item name="lime_50" type="color">#f9fbe7</item>
        <item name="lime_100" type="color">#f0f4c3</item>
        <item name="lime_200" type="color">#e6ee9c</item>
        <item name="lime_300" type="color">#dce775</item>
        <item name="lime_400" type="color">#d4e157</item>
        <item name="lime_500" type="color">#cddc39</item>
        <item name="lime_600" type="color">#c0ca33</item>
        <item name="lime_700" type="color">#afb42b</item>
        <item name="lime_800" type="color">#9e9d24</item>
        <item name="lime_900" type="color">#827717</item>
        <item name="lime_A100" type="color">#f4ff81</item>
        <item name="lime_A200" type="color">#eeff41</item>
        <item name="lime_A400" type="color">#c6ff00</item>
        <item name="lime_A700" type="color">#aeea00</item>
        <item name="yellow_50" type="color">#fffde7</item>
        <item name="yellow_100" type="color">#fff9c4</item>
        <item name="yellow_200" type="color">#fff59d</item>
        <item name="yellow_300" type="color">#fff176</item>
        <item name="yellow_400" type="color">#ffee58</item>
        <item name="yellow_500" type="color">#ffeb3b</item>
        <item name="yellow_600" type="color">#fdd835</item>
        <item name="yellow_700" type="color">#fbc02d</item>
        <item name="yellow_800" type="color">#f9a825</item>
        <item name="yellow_900" type="color">#f57f17</item>
        <item name="yellow_A100" type="color">#ffff8d</item>
        <item name="yellow_A200" type="color">#ffff00</item>
        <item name="yellow_A400" type="color">#ffea00</item>
        <item name="yellow_A700" type="color">#ffd600</item>
        <item name="amber_50" type="color">#fff8e1</item>
        <item name="amber_100" type="color">#ffecb3</item>
        <item name="amber_200" type="color">#ffe082</item>
        <item name="amber_300" type="color">#ffd54f</item>
        <item name="amber_400" type="color">#ffca28</item>
        <item name="amber_500" type="color">#ffc107</item>
        <item name="amber_600" type="color">#ffb300</item>
        <item name="amber_700" type="color">#ffa000</item>
        <item name="amber_800" type="color">#ff8f00</item>
        <item name="amber_900" type="color">#ff6f00</item>
        <item name="amber_A100" type="color">#ffe57f</item>
        <item name="amber_A200" type="color">#ffd740</item>
        <item name="amber_A400" type="color">#ffc400</item>
        <item name="amber_A700" type="color">#ffab00</item>
        <item name="orange_50" type="color">#fff3e0</item>
        <item name="orange_100" type="color">#ffe0b2</item>
        <item name="orange_200" type="color">#ffcc80</item>
        <item name="orange_300" type="color">#ffb74d</item>
        <item name="orange_400" type="color">#ffa726</item>
        <item name="orange_500" type="color">#ff9800</item>
        <item name="orange_600" type="color">#fb8c00</item>
        <item name="orange_700" type="color">#f57c00</item>
        <item name="orange_800" type="color">#ef6c00</item>
        <item name="orange_900" type="color">#e65100</item>
        <item name="orange_A100" type="color">#ffd180</item>
        <item name="orange_A200" type="color">#ffab40</item>
        <item name="orange_A400" type="color">#ff9100</item>
        <item name="orange_A700" type="color">#ff6d00</item>
        <item name="deep_orange_50" type="color">#fbe9e7</item>
        <item name="deep_orange_100" type="color">#ffccbc</item>
        <item name="deep_orange_200" type="color">#ffab91</item>
        <item name="deep_orange_300" type="color">#ff8a65</item>
        <item name="deep_orange_400" type="color">#ff7043</item>
        <item name="deep_orange_500" type="color">#ff5722</item>
        <item name="deep_orange_600" type="color">#f4511e</item>
        <item name="deep_orange_700" type="color">#e64a19</item>
        <item name="deep_orange_800" type="color">#d84315</item>
        <item name="deep_orange_900" type="color">#bf360c</item>
        <item name="deep_orange_A100" type="color">#ff9e80</item>
        <item name="deep_orange_A200" type="color">#ff6e40</item>
        <item name="deep_orange_A400" type="color">#ff3d00</item>
        <item name="deep_orange_A700" type="color">#dd2c00</item>
        <item name="brown_50" type="color">#efebe9</item>
        <item name="brown_100" type="color">#d7ccc8</item>
        <item name="brown_200" type="color">#bcaaa4</item>
        <item name="brown_300" type="color">#a1887f</item>
        <item name="brown_400" type="color">#8d6e63</item>
        <item name="brown_500" type="color">#795548</item>
        <item name="brown_600" type="color">#6d4c41</item>
        <item name="brown_700" type="color">#5d4037</item>
        <item name="brown_800" type="color">#4e342e</item>
        <item name="brown_900" type="color">#3e2723</item>
        <item name="grey_50" type="color">#fafafa</item>
        <item name="grey_100" type="color">#f5f5f5</item>
        <item name="grey_200" type="color">#eeeeee</item>
        <item name="grey_300" type="color">#e0e0e0</item>
        <item name="grey_400" type="color">#bdbdbd</item>
        <item name="grey_500" type="color">#9e9e9e</item>
        <item name="grey_600" type="color">#757575</item>
        <item name="grey_700" type="color">#616161</item>
        <item name="grey_800" type="color">#424242</item>
        <item name="grey_900" type="color">#212121</item>
        <item name="grey_1000b" type="color">#000000</item>
        <item name="grey_1000w" type="color">#ffffff</item>
        <item name="blue_grey_50" type="color">#eceff1</item>
        <item name="blue_grey_100" type="color">#cfd8dc</item>
        <item name="blue_grey_200" type="color">#b0bec5</item>
        <item name="blue_grey_300" type="color">#90a4ae</item>
        <item name="blue_grey_400" type="color">#78909c</item>
        <item name="blue_grey_500" type="color">#607d8b</item>
        <item name="blue_grey_600" type="color">#546e7a</item>
        <item name="blue_grey_700" type="color">#455a64</item>
        <item name="blue_grey_800" type="color">#37474f</item>
        <item name="blue_grey_900" type="color">#263238</item>
    </array>

</resources>

Mais attention c'est probablement moins efficace que la réflexion.

 11
Author: Tibox, 2015-09-18 15:53:25

En utilisant la réflexion, vous pouvez récupérer tous les java.awt.Constantes de couleur, quelques 148 couleurs avec des noms

for (Field field : Color.class.getDeclaredFields()) {
    int modifiers = field.getModifiers();
    if (Modifier.isPublic(modifiers) && Modifier.isStatic(modifiers)
            && Modifier.isFinal(modifiers) && field.getType() == Color.class) {
        String colorName = field.getName().toLowerCase(Locale.US);
        Color color = Color.valueOf(colorName);
        System.out.printf("- %s -> %s%n", colorName, color);
    }
}

Cela utilise la réflexion, et suppose que le nom de la constante est un nom lisible par l'homme.

[139] thistle -> 0xd8bfd8ff
[140] tomato -> 0xff6347ff
[141] turquoise -> 0x40e0d0ff
[142] violet -> 0xee82eeff
[143] wheat -> 0xf5deb3ff
[144] white -> 0xffffffff
[145] whitesmoke -> 0xf5f5f5ff
[146] yellow -> 0xffff00ff
[147] yellowgreen -> 0x9acd32ff

Ajoutez donc les couleurs dans une liste et choisissez-en une au hasard avec random.nextInt(colors.size()).

 5
Author: Joop Eggen, 2015-09-18 15:22:57

, Comme Tibox décrit:

1. Ajoutez les couleurs matérielles à array.xml:

<array name="mdcolor_50">
    <item name="red_50" type="color">#fde0dc</item>
    <item name="pink_50" type="color">#fce4ec</item>
    <item name="purple_50" type="color">#f3e5f5</item>
    <item name="deep_purple_50" type="color">#ede7f6</item>
    <item name="indigo_50" type="color">#e8eaf6</item>
    <item name="blue_50" type="color">#e7e9fd</item>
    <item name="light_blue_50" type="color">#e1f5fe</item>
    <item name="cyan_50" type="color">#e0f7fa</item>
    <item name="teal_50" type="color">#e0f2f1</item>
    <item name="green_50" type="color">#d0f8ce</item>
    <item name="light_green_50" type="color">#f1f8e9</item>
    <item name="lime_50" type="color">#f9fbe7</item>
    <item name="yellow_50" type="color">#fffde7</item>
    <item name="amber_50" type="color">#fff8e1</item>
    <item name="orange_50" type="color">#fff3e0</item>
    <item name="deep_orange_50" type="color">#fbe9e7</item>
    <item name="brown_50" type="color">#efebe9</item>
    <item name="grey_50" type="color">#fafafa</item>
    <item name="blue_grey_50" type="color">#eceff1</item>
</array>

<array name="mdcolor_100">
    <item name="red_100" type="color">#f9bdbb</item>
    <item name="pink_100" type="color">#f8bbd0</item>
    <item name="purple_100" type="color">#e1bee7</item>
    <item name="deep_purple_100" type="color">#d1c4e9</item>
    <item name="indigo_100" type="color">#c5cae9</item>
    <item name="blue_100" type="color">#d0d9ff</item>
    <item name="light_blue_100" type="color">#b3e5fc</item>
    <item name="cyan_100" type="color">#b2ebf2</item>
    <item name="teal_100" type="color">#b2dfdb</item>
    <item name="green_100" type="color">#a3e9a4</item>
    <item name="light_green_100" type="color">#dcedc8</item>
    <item name="lime_100" type="color">#f0f4c3</item>
    <item name="yellow_100" type="color">#fff9c4</item>
    <item name="amber_100" type="color">#ffecb3</item>
    <item name="orange_100" type="color">#ffe0b2</item>
    <item name="deep_orange_100" type="color">#ffccbc</item>
    <item name="brown_100" type="color">#d7ccc8</item>
    <item name="grey_100" type="color">#f5f5f5</item>
    <item name="blue_grey_100" type="color">#cfd8dc</item>
</array>

<array name="mdcolor_200">
    <item name="red_200" type="color">#f69988</item>
    <item name="pink_200" type="color">#f48fb1</item>
    <item name="purple_200" type="color">#ce93d8</item>
    <item name="deep_purple_200" type="color">#b39ddb</item>
    <item name="indigo_200" type="color">#9fa8da</item>
    <item name="blue_200" type="color">#afbfff</item>
    <item name="light_blue_200" type="color">#81d4fa</item>
    <item name="cyan_200" type="color">#80deea</item>
    <item name="teal_200" type="color">#80cbc4</item>
    <item name="green_200" type="color">#72d572</item>
    <item name="light_green_200" type="color">#c5e1a5</item>
    <item name="lime_200" type="color">#e6ee9c</item>
    <item name="yellow_200" type="color">#fff59d</item>
    <item name="orange_200" type="color">#ffcc80</item>
    <item name="deep_orange_200" type="color">#ffab91</item>
    <item name="brown_200" type="color">#bcaaa4</item>
    <item name="grey_200" type="color">#eeeeee</item>
    <item name="blue_grey_200" type="color">#b0bec5</item>
</array>

<array name="mdcolor_300">
    <item name="red_300" type="color">#f36c60</item>
    <item name="pink_300" type="color">#f06292</item>
    <item name="purple_300" type="color">#ba68c8</item>
    <item name="deep_purple_300" type="color">#9575cd</item>
    <item name="indigo_300" type="color">#7986cb</item>
    <item name="blue_300" type="color">#91a7ff</item>
    <item name="light_blue_300" type="color">#4fc3f7</item>
    <item name="cyan_300" type="color">#4dd0e1</item>
    <item name="teal_300" type="color">#4db6ac</item>
    <item name="green_300" type="color">#42bd41</item>
    <item name="light_green_300" type="color">#aed581</item>
    <item name="lime_300" type="color">#dce775</item>
    <item name="yellow_300" type="color">#fff176</item>
    <item name="orange_300" type="color">#ffb74d</item>
    <item name="deep_orange_300" type="color">#ff8a65</item>
    <item name="brown_300" type="color">#a1887f</item>
    <item name="grey_300" type="color">#e0e0e0</item>
    <item name="blue_grey_300" type="color">#90a4ae</item>
</array>

<array name="mdcolor_400">
    <item name="red_400" type="color">#e84e40</item>
    <item name="pink_400" type="color">#ec407a</item>
    <item name="purple_400" type="color">#ab47bc</item>
    <item name="deep_purple_400" type="color">#7e57c2</item>
    <item name="indigo_400" type="color">#5c6bc0</item>
    <item name="blue_400" type="color">#738ffe</item>
    <item name="light_blue_400" type="color">#29b6f6</item>
    <item name="cyan_400" type="color">#26c6da</item>
    <item name="teal_400" type="color">#26a69a</item>
    <item name="green_400" type="color">#2baf2b</item>
    <item name="light_green_400" type="color">#9ccc65</item>
    <item name="lime_400" type="color">#d4e157</item>
    <item name="yellow_400" type="color">#ffee58</item>
    <item name="orange_400" type="color">#ffa726</item>
    <item name="deep_orange_400" type="color">#ff7043</item>
    <item name="brown_400" type="color">#8d6e63</item>
    <item name="grey_400" type="color">#bdbdbd</item>
    <item name="blue_grey_400" type="color">#78909c</item>
</array>

<array name="mdcolor_500">
    <item name="red_500" type="color">#e51c23</item>
    <item name="pink_500" type="color">#e91e63</item>
    <item name="purple_500" type="color">#9c27b0</item>
    <item name="deep_purple_500" type="color">#673ab7</item>
    <item name="indigo_500" type="color">#3f51b5</item>
    <item name="blue_500" type="color">#5677fc</item>
    <item name="light_blue_500" type="color">#03a9f4</item>
    <item name="cyan_500" type="color">#00bcd4</item>
    <item name="teal_500" type="color">#009688</item>
    <item name="green_500" type="color">#259b24</item>
    <item name="light_green_500" type="color">#8bc34a</item>
    <item name="lime_500" type="color">#cddc39</item>
    <item name="yellow_500" type="color">#ffeb3b</item>
    <item name="orange_500" type="color">#ff9800</item>
    <item name="deep_orange_500" type="color">#ff5722</item>
    <item name="brown_500" type="color">#795548</item>
    <item name="grey_500" type="color">#9e9e9e</item>
    <item name="blue_grey_500" type="color">#607d8b</item>
</array>

<array name="mdcolor_600">
    <item name="red_600" type="color">#dd191d</item>
    <item name="pink_600" type="color">#d81b60</item>
    <item name="purple_600" type="color">#8e24aa</item>
    <item name="deep_purple_600" type="color">#5e35b1</item>
    <item name="indigo_600" type="color">#3949ab</item>
    <item name="blue_600" type="color">#4e6cef</item>
    <item name="light_blue_600" type="color">#039be5</item>
    <item name="cyan_600" type="color">#00acc1</item>
    <item name="teal_600" type="color">#00897b</item>
    <item name="green_600" type="color">#0a8f08</item>
    <item name="light_green_600" type="color">#7cb342</item>
    <item name="lime_600" type="color">#c0ca33</item>
    <item name="yellow_600" type="color">#fdd835</item>
    <item name="orange_600" type="color">#fb8c00</item>
    <item name="deep_orange_600" type="color">#f4511e</item>
    <item name="brown_600" type="color">#6d4c41</item>
    <item name="grey_600" type="color">#757575</item>
    <item name="blue_grey_600" type="color">#546e7a</item>
</array>

<array name="mdcolor_700">
    <item name="red_700" type="color">#d01716</item>
    <item name="pink_700" type="color">#c2185b</item>
    <item name="purple_700" type="color">#7b1fa2</item>
    <item name="deep_purple_700" type="color">#512da8</item>
    <item name="indigo_700" type="color">#303f9f</item>
    <item name="blue_700" type="color">#455ede</item>
    <item name="light_blue_700" type="color">#0288d1</item>
    <item name="cyan_700" type="color">#0097a7</item>
    <item name="teal_700" type="color">#00796b</item>
    <item name="green_700" type="color">#0a7e07</item>
    <item name="light_green_700" type="color">#689f38</item>
    <item name="lime_700" type="color">#afb42b</item>
    <item name="yellow_700" type="color">#fbc02d</item>
    <item name="orange_700" type="color">#f57c00</item>
    <item name="deep_orange_700" type="color">#e64a19</item>
    <item name="brown_700" type="color">#5d4037</item>
    <item name="grey_700" type="color">#616161</item>
    <item name="blue_grey_700" type="color">#455a64</item>
</array>

<array name="mdcolor_800">
    <item name="red_800" type="color">#c41411</item>
    <item name="pink_800" type="color">#ad1457</item>
    <item name="purple_800" type="color">#6a1b9a</item>
    <item name="deep_purple_800" type="color">#4527a0</item>
    <item name="indigo_800" type="color">#283593</item>
    <item name="blue_800" type="color">#3b50ce</item>
    <item name="light_blue_800" type="color">#0277bd</item>
    <item name="cyan_800" type="color">#00838f</item>
    <item name="teal_800" type="color">#00695c</item>
    <item name="green_800" type="color">#056f00</item>
    <item name="light_green_800" type="color">#558b2f</item>
    <item name="lime_800" type="color">#9e9d24</item>
    <item name="yellow_800" type="color">#f9a825</item>
    <item name="orange_800" type="color">#ef6c00</item>
    <item name="deep_orange_800" type="color">#d84315</item>
    <item name="brown_800" type="color">#4e342e</item>
    <item name="grey_800" type="color">#424242</item>
    <item name="blue_grey_800" type="color">#37474f</item>
</array>

<array name="mdcolor_900">
    <item name="red_900" type="color">#b0120a</item>
    <item name="pink_900" type="color">#880e4f</item>
    <item name="purple_900" type="color">#4a148c</item>
    <item name="deep_purple_900" type="color">#311b92</item>
    <item name="indigo_900" type="color">#1a237e</item>
    <item name="blue_900" type="color">#2a36b1</item>
    <item name="light_blue_900" type="color">#01579b</item>
    <item name="cyan_900" type="color">#006064</item>
    <item name="teal_900" type="color">#004d40</item>
    <item name="green_900" type="color">#0d5302</item>
    <item name="light_green_900" type="color">#33691e</item>
    <item name="lime_900" type="color">#827717</item>
    <item name="yellow_900" type="color">#f57f17</item>
    <item name="orange_900" type="color">#e65100</item>
    <item name="deep_orange_900" type="color">#bf360c</item>
    <item name="brown_900" type="color">#3e2723</item>
    <item name="grey_900" type="color">#212121</item>
    <item name="blue_grey_900" type="color">#263238</item>
</array>

<array name="mdcolor_A100">
    <item name="red_A100" type="color">#ff7997</item>
    <item name="pink_A100" type="color">#ff80ab</item>
    <item name="purple_A100" type="color">#ea80fc</item>
    <item name="deep_purple_A100" type="color">#b388ff</item>
    <item name="indigo_A100" type="color">#8c9eff</item>
    <item name="blue_A100" type="color">#a6baff</item>
    <item name="light_blue_A100" type="color">#80d8ff</item>
    <item name="cyan_A100" type="color">#84ffff</item>
    <item name="teal_A100" type="color">#a7ffeb</item>
    <item name="green_A100" type="color">#a2f78d</item>
    <item name="light_green_A100" type="color">#ccff90</item>
    <item name="lime_A100" type="color">#f4ff81</item>
    <item name="yellow_A100" type="color">#ffff8d</item>
    <item name="orange_A100" type="color">#ffd180</item>
    <item name="deep_orange_A100" type="color">#ff9e80</item>
</array>

<array name="mdcolor_A200">
    <item name="red_A200" type="color">#ff5177</item>
    <item name="pink_A200" type="color">#ff4081</item>
    <item name="purple_A200" type="color">#e040fb</item>
    <item name="deep_purple_A200" type="color">#7c4dff</item>
    <item name="indigo_A200" type="color">#536dfe</item>
    <item name="blue_A200" type="color">#6889ff</item>
    <item name="light_blue_A200" type="color">#40c4ff</item>
    <item name="cyan_A200" type="color">#18ffff</item>
    <item name="teal_A200" type="color">#64ffda</item>
    <item name="green_A200" type="color">#5af158</item>
    <item name="light_green_A200" type="color">#b2ff59</item>
    <item name="lime_A200" type="color">#eeff41</item>
    <item name="yellow_A200" type="color">#ffff00</item>
    <item name="orange_A200" type="color">#ffab40</item>
    <item name="deep_orange_A200" type="color">#ff6e40</item>
</array>

<array name="mdcolor_A400">
    <item name="red_A400" type="color">#ff2d6f</item>
    <item name="pink_A400" type="color">#f50057</item>
    <item name="purple_A400" type="color">#d500f9</item>
    <item name="deep_purple_A400" type="color">#651fff</item>
    <item name="indigo_A400" type="color">#3d5afe</item>
    <item name="blue_A400" type="color">#4d73ff</item>
    <item name="light_blue_A400" type="color">#00b0ff</item>
    <item name="cyan_A400" type="color">#00e5ff</item>
    <item name="teal_A400" type="color">#1de9b6</item>
    <item name="green_A400" type="color">#14e715</item>
    <item name="light_green_A400" type="color">#76ff03</item>
    <item name="lime_A400" type="color">#c6ff00</item>
    <item name="yellow_A400" type="color">#ffea00</item>
    <item name="orange_A400" type="color">#ff9100</item>
    <item name="deep_orange_A400" type="color">#ff3d00</item>
</array>

<array name="mdcolor_A700">
    <item name="red_A700" type="color">#e00032</item>
    <item name="pink_A700" type="color">#c51162</item>
    <item name="purple_A700" type="color">#aa00ff</item>
    <item name="deep_purple_A700" type="color">#6200ea</item>
    <item name="indigo_A700" type="color">#304ffe</item>
    <item name="blue_A700" type="color">#4d69ff</item>
    <item name="light_blue_A700" type="color">#0091ea</item>
    <item name="cyan_A700" type="color">#00b8d4</item>
    <item name="teal_A700" type="color">#00bfa5</item>
    <item name="green_A700" type="color">#12c700</item>
    <item name="light_green_A700" type="color">#64dd17</item>
    <item name="lime_A700" type="color">#aeea00</item>
    <item name="yellow_A700" type="color">#ffd600</item>
    <item name="orange_A700" type="color">#ff6d00</item>
    <item name="deep_orange_A700" type="color">#dd2c00</item>
</array>

<array name="extra">
    <item name="grey_1000b" type="color">#000000</item>
    <item name="grey_1000w" type="color">#ffffff</item>
</array>

2. Ajouter getMDcolor() à votre classe:

private int getMDcolor(String mdcolor) {
    int returnColor = 0;
    String[] mdcolors = new String[]{
            "mdcolor_50",
            "mdcolor_100",
            "mdcolor_200",
            "mdcolor_300",
            "mdcolor_400",
            "mdcolor_500",
            "mdcolor_600",
            "mdcolor_700",
            "mdcolor_800",
            "mdcolor_900",
            "mdcolor_A100",
            "mdcolor_A200",
            "mdcolor_A400",
            "mdcolor_A700",
            "extras"};
    if (Arrays.asList(mdcolors).contains(mdcolor)) {
        TypedArray colors = null;
        switch (mdcolor) {
            case "mdcolor_50":
                colors = mContext.getResources().obtainTypedArray(R.array.mdcolor_50);
                break;

            case "mdcolors_100":
                colors = mContext.getResources().obtainTypedArray(R.array.mdcolor_100);
                break;

            case "mdcolor_200":
                colors = mContext.getResources().obtainTypedArray(R.array.mdcolor_200);
                break;

            case "mdcolor_300":
                colors = mContext.getResources().obtainTypedArray(R.array.mdcolor_300);
                break;

            case "mdcolor_400":
                colors = mContext.getResources().obtainTypedArray(R.array.mdcolor_400);
                break;

            case "mdcolor_500":
                colors = mContext.getResources().obtainTypedArray(R.array.mdcolor_500);
                break;

            case "mdcolor_600":
                colors = mContext.getResources().obtainTypedArray(R.array.mdcolor_600);
                break;

            case "mdcolor_700":
                colors = mContext.getResources().obtainTypedArray(R.array.mdcolor_700);
                break;

            case "mdcolor_800":
                colors = mContext.getResources().obtainTypedArray(R.array.mdcolor_800);
                break;

            case "mdcolor_900":
                colors = mContext.getResources().obtainTypedArray(R.array.mdcolor_900);
                break;

            case "mdcolor_A100":
                colors = mContext.getResources().obtainTypedArray(R.array.mdcolor_A100);
                break;

            case "mdcolor_A200":
                colors = mContext.getResources().obtainTypedArray(R.array.mdcolor_A200);
                break;

            case "mdcolor_A400":
                colors = mContext.getResources().obtainTypedArray(R.array.mdcolor_A400);
                break;

            case "mdcolor_A700":
                colors = mContext.getResources().obtainTypedArray(R.array.mdcolor_A700);
                break;

            case "extra":
                colors = mContext.getResources().obtainTypedArray(R.array.extra);
                break;
        }
        if (colors != null) {
            int index = (int) (Math.random() * colors.length());
            returnColor = colors.getColor(index, Color.BLACK);
        }
        assert colors != null;
        colors.recycle();
    }
    return returnColor;

3. Utilisation:

  • Obtenir une couleur par: getMDcolor("<md color id>")
  • Disponible colors:
    mdcolor_50
    mdcolor_100
    mdcolor_200
    mdcolor_300
    mdcolor_400
    mdcolor_500
    mdcolor_600
    mdcolor_700
    mdcolor_800
    mdcolor_900
    mdcolor_A100
    mdcolor_A200
    mdcolor_A400
    mdcolor_A700
    extras
 4
Author: Tomblarom, 2017-05-23 12:18:22

Voici une classe que j'ai écrite. Vous pouvez créer votre propre palette de couleurs ou d'obtenir une couleur aléatoire.

Exemple d'utilisation:

// get a random color.
int randomColor = MaterialColorPalette.getRandomColor("100");

// create your own material color palette
MaterialColorPalette myCustomPalette = new MaterialColorPalette(Color.CYAN);
int my200Color = myCustomPalette.getColor("200");

MaterialColorPalette.java

import android.graphics.Color;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Random;

public class MaterialColorPalette {

  public static final int RED_500 = 0xFFF44336;
  public static final int PINK_500 = 0xFFE91E63;
  public static final int PURPLE_500 = 0xFF9C27B0;
  public static final int DEEP_PURPLE_500 = 0xFF673AB7;
  public static final int INDIGO_500 = 0xFF3F51B5;
  public static final int BLUE_500 = 0xFF2196F3;
  public static final int LIGHT_BLUE_500 = 0xFF03A9F4;
  public static final int CYAN_500 = 0xFF00BCD4;
  public static final int TEAL_500 = 0xFF009688;
  public static final int GREEN_500 = 0xFF4CAF50;
  public static final int LIGHT_GREEN_500 = 0xFF8BC34A;
  public static final int LIME_500 = 0xFFCDDC39;
  public static final int YELLOW_500 = 0xFFFFEB3B;
  public static final int AMBER_500 = 0xFFFFC107;
  public static final int ORANGE_500 = 0xFFFF9800;
  public static final int DEEP_ORANGE_500 = 0xFFFF5722;
  public static final int BROWN_500 = 0xFF795548;
  public static final int GREY_500 = 0xFF9E9E9E;
  public static final int BLUE_GREY_500 = 0xFF607D8B;

  private static final List<MaterialColorPalette> MATERIAL_PALETTES;

  private static final Random RANDOM = new Random();

  static {
    MATERIAL_PALETTES = new ArrayList<>();
    MATERIAL_PALETTES.add(new MaterialColorPalette(RED_500));
    MATERIAL_PALETTES.add(new MaterialColorPalette(PINK_500));
    MATERIAL_PALETTES.add(new MaterialColorPalette(PURPLE_500));
    MATERIAL_PALETTES.add(new MaterialColorPalette(DEEP_PURPLE_500));
    MATERIAL_PALETTES.add(new MaterialColorPalette(INDIGO_500));
    MATERIAL_PALETTES.add(new MaterialColorPalette(BLUE_500));
    MATERIAL_PALETTES.add(new MaterialColorPalette(LIGHT_BLUE_500));
    MATERIAL_PALETTES.add(new MaterialColorPalette(CYAN_500));
    MATERIAL_PALETTES.add(new MaterialColorPalette(TEAL_500));
    MATERIAL_PALETTES.add(new MaterialColorPalette(GREEN_500));
    MATERIAL_PALETTES.add(new MaterialColorPalette(LIGHT_GREEN_500));
    MATERIAL_PALETTES.add(new MaterialColorPalette(LIME_500));
    MATERIAL_PALETTES.add(new MaterialColorPalette(YELLOW_500));
    MATERIAL_PALETTES.add(new MaterialColorPalette(AMBER_500));
    MATERIAL_PALETTES.add(new MaterialColorPalette(ORANGE_500));
    MATERIAL_PALETTES.add(new MaterialColorPalette(DEEP_ORANGE_500));
    MATERIAL_PALETTES.add(new MaterialColorPalette(BROWN_500));
    MATERIAL_PALETTES.add(new MaterialColorPalette(GREY_500));
    MATERIAL_PALETTES.add(new MaterialColorPalette(BLUE_GREY_500));
  }

  public static int getRandomColor(String key) {
    return MATERIAL_PALETTES.get(RANDOM.nextInt(MATERIAL_PALETTES.size())).getColor(key);
  }

  /**
   * Lighten or darken a color
   *
   * @param color
   *     color value
   * @param percent
   *     -1.0 to 1.0
   * @return new shaded color
   * @see #shadeColor(String, double)
   */
  public static int shadeColor(int color, double percent) {
    return shadeColor(String.format("#%06X", (0xFFFFFF & color)), percent); // ignores alpha channel
  }

  /**
   * Lighten or darken a color
   *
   * @param color
   *     7 character string representing the color.
   * @param percent
   *     -1.0 to 1.0
   * @return new shaded color
   * @see #shadeColor(int, double)
   */
  public static int shadeColor(String color, double percent) {
    // based off http://stackoverflow.com/a/13542669/1048340
    long f = Long.parseLong(color.substring(1), 16);
    double t = percent < 0 ? 0 : 255;
    double p = percent < 0 ? percent * -1 : percent;
    long R = f >> 16;
    long G = f >> 8 & 0x00FF;
    long B = f & 0x0000FF;
    int red = (int) (Math.round((t - R) * p) + R);
    int green = (int) (Math.round((t - G) * p) + G);
    int blue = (int) (Math.round((t - B) * p) + B);
    return Color.rgb(red, green, blue);
  }

  private final HashMap<String, Integer> palette = new HashMap<>();

  /**
   * @param primary
   *     the 500 color
   */
  public MaterialColorPalette(int primary) {
    palette.put("50", shadeColor(primary, 0.9));
    palette.put("100", shadeColor(primary, 0.7));
    palette.put("200", shadeColor(primary, 0.5));
    palette.put("300", shadeColor(primary, 0.333));
    palette.put("400", shadeColor(primary, 0.166));
    palette.put("500", primary);
    palette.put("600", shadeColor(primary, -0.125));
    palette.put("700", shadeColor(primary, -0.25));
    palette.put("800", shadeColor(primary, -0.375));
    palette.put("900", shadeColor(primary, -0.5));
    palette.put("A100", shadeColor(primary, 0.7));
    palette.put("A200", shadeColor(primary, 0.5));
    palette.put("A400", shadeColor(primary, 0.166));
    palette.put("A700", shadeColor(primary, -0.25));
  }

  public int getColor(String key) {
    return palette.get(key);
  }

  public void putColor(String key, int color) {
    palette.put(key, color);
  }

}

Copiez simplement la classe dans votre projet et ajoutez la déclaration de package.

 4
Author: Jared Rummler, 2015-10-21 13:50:01