如果我在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 /中 我导入的上下文如何使用绿色,例如在参数中?
答案 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);