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