Java 以编程方式更改图层列表中GradientDrawable的颜色

Java 以编程方式更改图层列表中GradientDrawable的颜色,java,android,layout,drawable,Java,Android,Layout,Drawable,因此,在阅读了大量关于这方面的问题后,我仍然停留在这里,以下是我想做的: 从Java更改形状(id=“myShape”)的颜色 选择ClipDrawable并调用setColorFilter(颜色)没有帮助 选择GradientDrawable也没有帮助 此进度条可以有3种颜色。 目前我已经制作了3个XML,每个颜色对应1个,并且根据我的条件加载它们。 我已经提到了,但他没有剪辑进度条,这是我正在做的额外的事情。 问题是,xml中的颜色值是动态的,我是从服务器获取的,因此这三个xml没有多大用处

因此,在阅读了大量关于这方面的问题后,我仍然停留在这里,以下是我想做的:

  • 从Java更改形状(id=“myShape”)的颜色
  • 选择ClipDrawable并调用setColorFilter(颜色)没有帮助
  • 选择GradientDrawable也没有帮助
  • 此进度条可以有3种颜色。 目前我已经制作了3个XML,每个颜色对应1个,并且根据我的条件加载它们。 我已经提到了,但他没有剪辑进度条,这是我正在做的额外的事情。 问题是,xml中的颜色值是动态的,我是从服务器获取的,因此这三个xml没有多大用处,直到我可以从java更改颜色为止。 在级别列表中有一个可能的解决方案,但我不太热衷于朝这个方向发展,这将需要大量的返工

    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
        <item android:id="@+id/progress_front">
            <clip android:clipOrientation="horizontal" >
                <shape android:shape="rectangle" android:id="myShape">
                    <corners
                      android:bottomLeftRadius="360dp"
                      android:topLeftRadius="360dp"
                      android:bottomRightRadius="360dp"                    
                      android:topRightRadius="360dp" />
                    **<solid android:color="@color/bigfoodie_text" />**
    
                </shape>
            </clip>
        </item>
    
    </layer-list>
    
    
    ****
    
    感谢您的帮助