2012-05-14 61 views
2

我有顏色在我String.xml文件,如下圖所示:如何使用String.Xml文件的色彩在Java代碼中

<?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

你必須利用你的上下文,並以數組格式提供你的資源並使用它。

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])); 
      } 


       } 
} 
+0

我知道,我想那是什麼顏色將整個顏色我有重複使用。在代碼中,你給我的顏料總是會有黑色! – AnasBakez

+1

然後你的問題必須被清楚地編輯。 –

+0

我想把String.xml中的顏色放在一個n數組中 – AnasBakez

3

使用這樣

context.getResources().getColor(R.color.MusicPercent); 
1

//你可以通過GET資源

paint.setColor(context.getResources().getColor(R.color.custom_red)); 
相關問題