设置 TextView 可绘制对象的颜色

新手上路,请多包涵

我试图在 Xamarin 中更改 TextView Drawable 的颜色。

在 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 中做这样的事情?

原文由 CDrosos 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 294
2 个回答

尝试以下解决方案

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

原文由 Arthur Attout 发布,翻译遵循 CC BY-SA 3.0 许可协议

我在科特林中使用这个:

 tv.getCompoundDrawables()[0].setTint(//color)

原文由 Giedrius Šlikas 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题