Android-如何在不丢失动画的情况下更改水平进度条的颜色

Android-如何在不丢失动画的情况下更改水平进度条的颜色,android,animation,progress-bar,android-progressbar,Android,Animation,Progress Bar,Android Progressbar,首先,这不是“如何更改进度条颜色”问题的重复,它确实解决了我的问题,但产生了另一个问题 因此,我有一个水平进度条,我一直在写/更新进度条,即将进度设置为1,然后设置为2,(最多100),以模拟完成百分比,如果我不改变颜色,效果会很好。但是,正如您所知,在某些手机上,进度条的默认资源颜色是绿色,有些是橙色,我希望所有设备上的颜色都是绿色,因此在进度条属性中,我将progressDrawable(Stackoverflow上的大多数答案建议)设置为以下xml文件 <?xml version=

首先,这不是“如何更改进度条颜色”问题的重复,它确实解决了我的问题,但产生了另一个问题

因此,我有一个水平进度条,我一直在写/更新进度条,即将进度设置为1,然后设置为2,(最多100),以模拟完成百分比,如果我不改变颜色,效果会很好。但是,正如您所知,在某些手机上,进度条的默认资源颜色是绿色,有些是橙色,我希望所有设备上的颜色都是绿色,因此在进度条属性中,我将
progressDrawable
(Stackoverflow上的大多数答案建议)设置为以下
xml
文件

 <?xml version="1.0" encoding="utf-8"?>
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
 <corners android:radius="5dip" />
 <gradient
  android:startColor="#4CC417"
  android:centerColor="#4CC417"
  android:centerY="0.75"
  android:endColor="#4CC417"
  android:angle="270"
/>
</shape>

如果我这样做,进度条现在只显示整个进度(即最终百分比,100),您将看不到从0到任何百分比的动画

  • 有没有办法只更改进度条的默认颜色,而仍保留默认动画

  • 如果不可能,这是否意味着我必须自己制作动画?如果是这样的话,有人能给我一个关于如何让我自己的动画模仿进度条的片段吗


  • 可绘制的进度条必须有两个ID为“background”和“progress”的项目,可以选择第三个项目“secondaryProgress”。看看这里有什么:

    在您的情况下,可拉伸的外观如下所示:

    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item android:id="@android:id/background">
            <shape>
                <corners android:radius="5dip" />
                <gradient
                        android:startColor="#ff9d9e9d"
                        android:centerColor="#ff5a5d5a"
                        android:centerY="0.75"
                        android:endColor="#ff747674"
                        android:angle="270"
                />
            </shape>
        </item> 
    
        <item android:id="@android:id/progress">
            <clip>
                <shape>
                    <corners android:radius="5dip" />
                    <gradient
                            android:startColor="#4CC417"
                            android:centerColor="#4CC417"
                            android:centerY="0.75"
                            android:endColor="#4CC417"
                            android:angle="270"
                    />
                </shape>
            </clip>
        </item>
    
    </layer-list>
    
    
    
    “clip”元素也很重要,因为使用它系统可以剪裁“progress”形状。看