我的String.xml文件中有颜色,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="txtEmail">Email </string>
<string name="txtPin">Pin Code</string>
<string name="lblProtected"> Protected</string>
<color name="MiscellaneousPercent">#ffff992b</color>
<color name="MusicPercent">#ffffdd58</color>
<color name="PicturesPercent">#ff48aa71</color>
<color name="eBooksPercent">#ff00cff9</color>
<color name="DocumentsPercent">#ff019df2</color>
</resources>
我想在我的项目中使用这些颜色,以便通过代码迭代颜色。
public class BreakDownBar extends View {
public BreakDownBar(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
for (int i = 0; i < 5; i++) {
Paint paint = new Paint();
paint.setColor(/*I want to use the colors HERE*/);
}
}
}
如何使用上面onDraw
中的SetColor()
方法中的颜色?我可以将String.XMl文件中的颜色放在数组中吗?
任何人都可以帮助我吗?
答案 0 :(得分:4)
像这样使用
context.getResources().getColor(R.color.MusicPercent);
答案 1 :(得分:3)
您必须使用您的Context,并以数组格式提供资源并使用它。
public class BreakDownBar extends View {
Context context=null;
int res[]={R.color.black,R.color.blue,R.color.white,R.color.pink,R.color.grey};
public BreakDownBar(Context context, AttributeSet attrs) {
super(context, attrs);
this.context=context;
}
@Override
protected void onDraw(Canvas canvas) {
for (int i = 0; i < 5; i++) {
Paint paint = new Paint();
paint.setColor(res[i]));
}
}
}
答案 2 :(得分:1)
//你可以使用get resource
paint.setColor(context.getResources().getColor(R.color.custom_red));