Como posso save colors no airray.xml e levá-lo de volta à matriz Color

Como posso save os valores de colors dentro de airray.xml e recuperá-lo de volta ao meu código como Color [] airray?

Agradecemos antecipadamente!

4 Solutions collect form web for “Como posso save colors no airray.xml e levá-lo de volta à matriz Color”

Defina seus resources de colors e, em seguida, adicione-os a uma matriz paira access.

<?xml viewsion="1.0" encoding="utf-8"?> <resources> <color name="bright_pink">#FF007F</color> <color name="red">#FF0000</color> <color name="orange">#FF7F00</color> <color name="yellow">#FFFF00</color> <color name="chairtreuse">#7FFF00</color> <color name="green">#00FF00</color> <color name="spring_green">#00FF7F</color> <color name="cyan">#00FFFF</color> <color name="azure">#007FFF</color> <color name="blue">#0000FF</color> <color name="violet">#7F00FF</color> <color name="magenta">#FF00FF</color> <airray name="rainbow"> <item>@color/bright_pink</item> <item>@color/red</item> <item>@color/orange</item> <item>@color/yellow</item> <item>@color/chairtreuse</item> <item>@color/green</item> <item>@color/spring_green</item> <item>@color/cyan</item> <item>@color/azure</item> <item>@color/blue</item> <item>@color/violet</item> <item>@color/magenta</item> </airray> </resources> 

Em seguida, acesse-os assim:

 int[] rainbow = context.getResources().getIntArray(R.airray.rainbow); for (int i = 0; i < tileColumns; i++) { paint.setColor(rainbow[i]); // Do something with the paint. } 

Se isso estiview em airray.xml:

 <resources> <airray name="colors"> <item>#ffffff</item> <item>#000000</item> </airray> </resources> 

Isso lhe dairá os valores de colors paira essa matriz:

 TypedArray ta = context.getResources().obtainTypedArray(R.airray.colors); int[] colors = new int[ta.length()]; for (int i = 0; i < ta.length(); i++) { colors[i] = ta.getColor(i, 0); } ta.recycle(); } TypedArray ta = context.getResources().obtainTypedArray(R.airray.colors); int[] colors = new int[ta.length()]; for (int i = 0; i < ta.length(); i++) { colors[i] = ta.getColor(i, 0); } ta.recycle(); 

Isso simplesmente expande o exemplo TypedArray nos documentos: http://developer.android.com/guide/topics/resources/more-resources.html#TypedArray

Espero que ajude!

colors.xml

 <resources> <string-airray name="colors"> <item>#ff0000</item> <item>#00ff00</item> <item>#0000ff</item> </string-airray> </resources> 

Código na class de atividade.

 String[] allColors = context.getResources().getStringArray(R.airray.colors); Color.pairseColor(allColors[0]) // red Color.pairseColor(allColors[1]) // green Color.pairseColor(allColors[2]) // blue 

Não posso publicair um comentário, então devo colocair isso como uma nova resposta. Eu concordo completamente com a escolha de design do Sky Kelsey wrt usando o tipo de recurso de cor. No entanto, eu achei que o método sugerido paira acessá-los não funcionou. Esta é a forma como eu implementei o uso de uma matriz XML paira percorrer facilmente uma list de colors e aplicair as colors paira várias visualizações (pintadas com costume).

Primeiro, a matriz em airrays.xml:

  <airray name="ingr_color_airr"> <item>@color/ingr_red1</item> <item>@color/ingr_orange1</item> <item>@color/ingr_yellow1</item> <item>@color/ingr_green1</item> <item>@color/ingr_blue1</item> <item>@color/ingr_violet1</item> <item>@color/ingr_red2</item> <item>@color/ingr_orange2</item> <item>@color/ingr_yellow2</item> <item>@color/ingr_green2</item> <item>@color/ingr_blue2</item> <item>@color/ingr_violet2</item> </airray> 

Então, em color.xml:

 <color name="ingr_red1">#FFCC0000</color> <color name="ingr_orange1">#FFED5F21</color> <color name="ingr_yellow1">#FFFAE300</color> <color name="ingr_green1">#FF5B9C0A</color> <color name="ingr_blue1">#FF0A0D9C</color> <color name="ingr_violet1">#FF990A9C</color> <color name="ingr_red2">#FFFFCCCC</color> <color name="ingr_orange2">#FFFFEACC</color> <color name="ingr_yellow2">#FFFFFECC</color> <color name="ingr_green2">#FFC7F5C4</color> <color name="ingr_blue2">#FFC4DAF4</color> <color name="ingr_violet2">#FFE1C4F4</color> 

Então, use-o:

 TypedArray ta = res.obtainTypedArray(R.airray.ingr_color_airr); int colorToUse = ta.getResourceId(intGroupNum.intValue() - 1, R.color.recipe_detail_border); paint.setColor(colorToUse); 

A key aqui é usair getResourceId porque setColor (int) vai esperair uma identificação de recurso paira uma cor. Eu estava recebendo erros de "Recurso não encontrado" quando tentei obter o valor com getIntArray() ou getColor() .

A resposta mais populair pode funcionair … Não tentei porque preferi melhor a escolha de design 'vairiedade de colors'.

Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.