android:TextView,圆形背景,动态背景色

android:TextView,圆形背景,动态背景色,android,Android,我需要用动态颜色制作圆形背景的文本视图。 我知道如何制作可绘制的背景,但我不知道如何在代码中更改它的颜色 可绘制的bg xml: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="rectangle" &g


我需要用动态颜色制作圆形背景的文本视图。
我知道如何制作可绘制的背景,但我不知道如何在代码中更改它的颜色

可绘制的bg xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item>
        <shape android:shape="rectangle" >
            <solid android:color="@color/colorPrimary"></solid>
            <corners android:radius="7dp"></corners>
        </shape>
    </item>


</selector>
我需要的是更改可绘制背景(而不是文本视图)的颜色,其中
“holder.mTask.\u catColor”

尝试此操作(其中0xFF00FF00是颜色代码)在您想要更改颜色的条件下更改java代码中的颜色
如果您想在一段时间后更改,您可以设置计时器或使用gif

这段代码适合我

    Drawable drawable = getResources().getDrawable(R.drawable.yourViewBackground);
    drawable.mutate().setColorFilter(your_resolved_color, PorterDuff.Mode.SRC_IN);
    yourView.setBackground(drawable);

我以前试过,它删除了可绘制的背景,然后改变了视图的颜色(没有可绘制的背景)?两件事情同时在一个地方结合在一起是怎么可能的?我只需要通过代码更改可绘制背景(xml)中可绘制形状的颜色
 public void onBindViewHolder(final ViewHolder holder, int position) {  

       holder.txt_taskCategory.setText(holder.mTask._catName);
       holder.txt_taskCategory.setBackgroundColor( Color.parseColor( holder.mTask._catColor));
    //when i do that it remove the drawable background and just color it.


}
v.setBackgroundColor(0xFF00FF00);
    Drawable drawable = getResources().getDrawable(R.drawable.yourViewBackground);
    drawable.mutate().setColorFilter(your_resolved_color, PorterDuff.Mode.SRC_IN);
    yourView.setBackground(drawable);