2

如果我在 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/ 中并且我导入了上下文,我该如何使用绿色,例如在参数中?

4

1 回答 1

2

首先,在您的 xml 中更改drawable为。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);
于 2013-01-24T02:01:56.547 回答