【问题标题】:Changing the color for custom progress Bar in Android at Runtime在运行时更改 Android 中自定义进度条的颜色
【发布时间】:2011-11-16 08:31:43
【问题描述】:

我已经制作了一个自定义进度条并在可绘制文件中设置了它的颜色:

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

在网上搜索了一段时间后,我找到了一种方法,可以创建一个progressBar,顶部带有一个textView,以便文本在进度条中指示进度百分比。

一旦我点击一个按钮,进度就会开始。我已将颜色设置为绿色。进度达到100%后,我想让它重新开始,只是这次它的颜色应该是红色的。

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

【问题讨论】:

  • 嗨 panaastha,我也在寻找自定义进度轮的运行时颜色变化。如果您得到答案,请在此处发布您的答案.. 它对所有人都有用..

标签: android android-widget


【解决方案1】:

我遇到了同样的问题,我找到了解决方案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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多