首先,这是不重复问题"如何更改进度条颜色",它确实解决了我的问题,但它产生了另一个问题。
所以,我有一个水平进度条,我一直在编写/更新进度条一个,即将进度设置为1,然后设置为2,(最多100个)来模拟完成百分比,如果我没有&#39则效果很好; t改变颜色。但是,如您所知,在某些手机上,进度条的默认资源颜色为绿色,有些为橙色,我希望所有设备上的颜色为绿色,因此在进度条属性中,我设置了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到任何百分比。
有没有办法只更改进度条的默认颜色,还有默认动画?
如果不可能,这是否意味着我必须做自己的动画?如果是这样,有人可以给我一个关于如何使用我自己的动画来模仿进度条的片段吗?
答案 0 :(得分:1)
进度条drawable必须有两个带有“背景”和“进度”的项目,可选择第三个“secondaryProgress”。看看这里有什么:https://github.com/android/platform_frameworks_base/blob/master/core/res/res/drawable/progress_horizontal.xml
在您的情况下,drawable将如下所示:
<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>
“剪辑”元素也很重要,因为使用它可以让系统剪切“进度”形状。请参阅http://developer.android.com/reference/android/graphics/drawable/ClipDrawable.html。