整数数组中的渐变颜色android

时间:2017-06-29 08:01:35

标签: android colors gradient

我在color.xml文件

中使用整数数组为我的cardview背景使用随机颜色

color.xml:

<item name="Gold" type="color">#FFFFD700</item>
<item name="Orange" type="color">#DSADSA</item>
<item name="LightSalmon" type="color">#EWQ5645W</item>

<integer-array name="androidcolors">
    <item>@color/Gold</item>
    <item>@color/Orange</item>
    <item>@color/LightSalmon</item>
</integer-array>

但我希望我的背景有渐变色,我尝试了这个:

<integer-array name="androidcolors">
    <item><gradient android:endColor="@color/blue" android:startColor="@color/darkblue" /></item>
</integer-array>

它不起作用,我搜索任何地方,我认为没有人使用这个:|你可以帮助我们如何在整数数组或color.xml文件中使用渐变???

2 个答案:

答案 0 :(得分:0)

创建一个xml文件并将其放在Drawable文件夹中。使用以下代码

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient
    android:startColor="#8300bf"
    android:centerColor="#768087"
    android:endColor="#FF9000"
    android:angle="-90"
    android:type="linear"/>

指定startColor和endColor。在LinearLayout中,按setBackground="@drawable/Your Gradient Filename"设置背景。

答案 1 :(得分:0)

试试这样, 1.创建一个可绘制的颜色,例如:

 card_drawable_bg.xml

    <?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <gradient
android:startColor="#ff9a6922"
android:centerColor="#ff9a4025"
android:endColor="#ff9a0e32"
android:angle="45"/>
        </shape>
    </item>
</selector>
  1. TypedArray正是您要找的。我有样品使用它。如果您有兴趣,请查看以下代码:
  2. 首先,res / values / arrays.xml中的整数数组:

        <integer-array name="frag_home_ids">
        <item>@drawable/card_drawable_bg</item>
    
    </integer-array>
    

    其次,以编程方式获取资源整数值:

        TypedArray tArray = getResources().obtainTypedArray(
                R.array.frag_home_ids);
    int count = tArray.length();
    int[] ids = new int[count];
    for (int i = 0; i < ids.length; i++) {
        ids[i] = tArray.getResourceId(i, 0);
    }
    //Recycles the TypedArray, to be re-used by a later caller. 
    //After calling this function you must not ever touch the typed array again.
    tArray.recycle();
    

    第三,调用整数值,如下所示:

    holder.cardView.setCardBackgroundColor(IDS [位置]);

    你可以用这种方式得到字符串,颜色,整数,布局,菜单等的整数值。希望它会对你有帮助。