从xml文件调用颜色

时间:2013-01-24 01:54:01

标签: android android-xml

如果我在res / values / colors中有一个带有这样自定义颜色的xml文件:

<?xml version="1.0" encoding="utf-8"?> 
<resources>
 <drawable name="red">#ff0000</drawable>
 <drawable name="blue">#0000ff</drawable>
 <drawable name="green">#00ff00</drawable>
</resources>

如何在其他代码中使用颜色或其他值?

如何将这些用于参数?类似的东西:

    int green = context.getResources().getColor(R.color.green);
    g.drawRect(1, 1, 181, 121, green);

在logcat中出错并使程序崩溃。所以如果colors.xml在res / values /中 我导入的上下文如何使用绿色,例如在参数中?

1 个答案:

答案 0 :(得分:2)

首先,将drawable更改为xml中的color

然后你需要有上下文。它是这样的:

context.getResources().getColor(R.color.green);

返回一个int颜色值。

编辑:

有关其他值,请参阅此处的函数:

http://developer.android.com/reference/android/content/res/Resources.html

我喜欢tp获取所有我的xml颜色并从那里传递它们所以我不是一遍又一遍地输入上面的内容。不确定这是否被认为是最佳做法。

如果你想在Paint中使用它,可能是:

// Declare this at the beginning:
Paint green paint;
// This goes in the constructor:
greenPaint = new Paint();
greenPaint.setColor(context.getResources().getColor(R.color.green));
// then draw something in onDraw, for example:
canvas.drawRect(5,5,5,5, greenPaint);

如果你想在多个Paints等中使用它,请将它保存为int:

int greenNum = context.getResources().getColor(R.color.green);