如何在Java代码中使用String.Xml文件中的颜色

时间:2012-05-14 10:04:24

标签: android paint

我的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文件中的颜色放在数组中吗? 任何人都可以帮助我吗?

3 个答案:

答案 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));