首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ProgressBar.setProgressDrawable时的颜色问题

使用ProgressBar.setProgressDrawable时的颜色问题
EN

Stack Overflow用户
提问于 2011-06-27 13:37:08
回答 1查看 1.8K关注 0票数 2

我在列表的元素中添加了进度栏,并动态地更新了进度栏。但是我面临的奇怪情况是..

当我的列表中有多个元素,并且我使用Progressbar.setProgressDrwable(),更改了进度条的颜色时,列表中的所有进度条都会更新,它们的颜色也会根据需要进行更改。

但是当我在列表中只有一个元素时,这个方法就不起作用了,我只能看到进度条的背景,而不是颜色。

我还为进度条的背景和颜色创建了XML文件,但它也不起作用。

我的ProgressDrawable的XMl代码是

FirstColor.xml

代码语言:javascript
复制
<item android:id="@android:id/background">
    <shape>
        <corners android:radius="15dip" />
        <gradient android:startColor="#A9A9A9" android:centerColor="#A9A9A9"
            android:endColor="#A9A9A9" android:angle="90" />
        <stroke android:width="5dp" android:color="#A9A9A9" />
    </shape>
</item>

<item android:id="@android:id/progress">
     <scale  android:scaleGravity="left" android:scaleWidth="100%" >
        <shape>
            <corners android:radius="15dip" />
            <gradient android:startColor="#ADFF2F" android:centerColor="#ADFF2F"
                android:endColor="#ADFF2F" android:angle="90" />
            <stroke android:width="5dp" android:color="#ADFF2F" />
        </shape>
    </scale>
</item>

SecondColor.xml

代码语言:javascript
复制
<item android:id="@android:id/background">
    <shape>
        <corners android:radius="15dip" />
        <gradient android:startColor="#A9A9A9" android:centerColor="#A9A9A9"
            android:endColor="#A9A9A9" android:angle="90" />
        <stroke android:width="5dp" android:color="#A9A9A9" />
    </shape>
</item>

<item android:id="@android:id/progress">
    <scale android:scaleGravity="left" android:scaleWidth="100%" >
        <shape>
            <corners android:radius="15dip" />
            <gradient android:startColor="#FFBF00" android:centerColor="#FFBF00"
                android:endColor="#FFBF00" android:angle="90" />
            <stroke android:width="5dp" android:color="#FFBF00" />
        </shape>
    </scale>
</item>

而我用来更改进度条颜色的java代码是

progressbar1.setProgressDrawable(getResources().getDrawable(R.drawable.FirstColor));progressbar1.setProgress(amntPercentage.intValue());

progressbar1.setProgressDrawable(getResources().getDrawable(R.drawable.SecondColor));progressbar1.setProgress(amntPercentage.intValue());

如果有人能解决我的问题,那就帮了大忙了。提前谢谢..

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-01 18:54:48

在设置新的progressDrawableprogressvalue之前,请确保未将progressvalue设置为“0”。这是因为在进度条的style.xml中,我们只为开始、中间和结束定义了xml字段,而不是为'0‘定义。

在更改可绘制之前,我将progressvalue设置为'1‘,我的项目工作正常。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6488979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档