2017-04-12 71 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