在运行时更改Android中自定义进度栏的颜色

时间:2011-11-16 08:31:44

标签: android android-widget

我制作了一个自定义进度条并将其颜色设置为可绘制文件:

  <item android:id="@android:id/progress">
  <clip>
       <shape>
       <corners android:radius="30dip" />
       <gradient
            android:startColor="#CCFF33"
            android:centerColor="#33CC33"
            android:endColor="#009933"
             />
       </shape>
   </clip>
     

在网上搜索了一段时间后,我找到了一种在{1}}上创建progressBar的方法,以便文字显示进度条中进度的百分比。

点击按钮后,进度开始。我将颜色设置为绿色。在进度达到100%后,我希望它再次启动,只是这次它的颜色应该是红色。

我尝试使用textView执行此操作,但单击按钮后进度条消失了。有什么建议或想法吗?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,我找到了解决方案here

简而言之,诀窍是使用Drawable的getBounds / setBounds

Rect bounds = mProgressBar.getProgressDrawable().getBounds(); // get current bounds before change drawable
mProgressBar.setProgressDrawable(res.getDrawable(R.drawable.use_different_drawable_here));
mProgressBar.getProgressDrawable().setBounds(bounds); // set bounds back
mProgressBar.setProgress(50); // you need to set progress again, because after changing drawable, progress is reset to 0 (I think so)