2017-04-12 75 views
5

我試圖改變Xamarin中TextView Drawable的顏色。設置TextView的顏色可繪製

在Java中,你可以做這樣的:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    TextView txt = (TextView) findViewById(R.id.my_textview); 
    setTextViewDrawableColor(txt, R.color.my_color); 
} 

private void setTextViewDrawableColor(TextView textView, int color) { 
    for (Drawable drawable : textView.getCompoundDrawables()) { 
     if (drawable != null) { 
      drawable.setColorFilter(new PorterDuffColorFilter(getColor(color), PorterDuff.Mode.SRC_IN)); 
     } 
    } 
} 

我怎樣才能做這樣的事情在Xamarin.Android?

回答

4

你可以做同樣的事情,但使用C#語法。

private void SetTextViewDrawableColor(TextView textView, int color){ 

    foreach(var drawable in textView.GetCompoundDrawables()){ 

     if(drawable != null){ 

      drawable.SetColorFilter(new PorterDuffColorFilter(GetColor(color), PorterDuff.Mode.SrcIn); 
     } 
    } 
} 
+0

這些也可能有助於如果有人想資源轉換顏色到Android顏色:新Android.Graphics.Color(ContextCompat.GetColor(這一點,Resource.Color.bb_orange)和Color.ParseColor( 「#000000」) ; – CDrosos

+0

這對我有用'drawable.setColorFilter(new PorterDuffColorFilter(resColorBlack,PorterDuff.Mode.SRC_IN));' – Jiyeh