通过xml传递颜色数组

时间:2017-03-13 08:50:56

标签: java android

我正在开发一个自定义视图,并希望能够通过xml将颜色数组传递给它。

我可以使用带有一些分隔符的字符串传递它,例如app:color_list="#505090;#505090;#505090",但是它不支持对colors.xml文件的引用。

我在Android SDK中没有看到这样的东西,所以我想知道,有没有比字符串方法更好的解决方案?

3 个答案:

答案 0 :(得分:1)

尝试使用颜色选择器

<强> /res/color/color_state.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:color="@color/red" android:state_enabled="false"/>
  <item android:color="@color/white"/>
</selector

并将其传递给属性

应用程式:color_list =&#34; @颜色/ color_state&#34;

答案 1 :(得分:0)

您可以在values目录中使用字符串数组。

<string-array name="colorList">
        <item>#505090</item>
        <item>#505090</item>
        <item>#505090</item>
</string-array>

答案 2 :(得分:0)

colors.xml文件中使用<array name="yourColors"> <item>#505090</item> <item>#505091</item> <item>#505092</item> </array> 资源,然后在代码中迭代它:

int[] yourColors = context.getResources().getIntArray(R.array.yourColors);

for (int i = 1; i < nrOfColors; i++) {
    someObject.setColor(yourColors[i]);
}

然后你可以遍历你的颜色数组:

 j=0
 for(i in seq(0, 500, by = 50)){
   j=i+50
   PlotData <- new.data[(new.data$X <j) & (new.data$X >i),]
   ggplot (PlotData, aes(X, Y, color = Z)) + geom_point()
 }