0

我在 Res\Color 文件夹中定义了一个渐变颜色 xml (green_gradient.xml)。我怎样才能让它在 custom 上画到一个酒吧View。对于正常的绿色,我画得像

paint.setColor(Color.GREEN);

但是如何替换Color.GREENgreen_gradient.xmlRes\Color 文件夹中定义的。

编辑 1. 我的 green_gradient.xml 在 res\color 文件夹中。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" >
        <shape>
            <solid
                android:color="#70c656" />
            <stroke
                android:width="1dp"
                android:color="#53933f" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
    <item>
        <shape>
            <gradient
                android:startColor="#70c656"
                android:endColor="#53933f"
                android:angle="270" />
            <stroke
                android:width="1dp"
                android:color="#53933f" />
            <corners
                android:radius="4dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
</selector>
4

2 回答 2

0

制作您的green_gradient.xmlindrawable文件夹,然后您可以使用R.drawable.green_gradient. 在布局 xml 文件中,您可以将其访问为@drawable/green_gradient

于 2013-07-14T06:10:57.913 回答
0

假设您在自定义颜色集中定义了绿色,您可以这样做

<your_context>.getResources().getColor(R.color.GREEN);

如果颜色完全在具有不同颜色状态的不同 xml 中,那么您可以使用类似

XmlResourceParser parser =context.getResources().getXml(R.color.green_gradient);
ColorStateList colors = null;
try {
    colors = ColorStateList.createFromXml(context.getResources(), parser);
} catch (XmlPullParserException e) {            
    e.printStackTrace();        
} catch (IOException e) {
    e.printStackTrace();
}

mybutton.setTextColor(colors); 
于 2013-07-14T06:01:37.370 回答