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

在运行时更改Android中自定义进度条的颜色,android,android-widget,Android,Android Widget,我制作了一个自定义进度条,并在可绘制文件中设置其颜色: 在网上搜索了一段时间后,我找到了一种方法来创建一个progressBar,顶部有一个textView,这样文本就可以指示进度条中的进度百分比 一旦我点击一个按钮,进度就开始了。我已将颜色设置为绿色。当进度达到100%后,我希望它重新开始,只是这次它的颜色应该是红色 我试图使用setProgressDrawable来实现这一点,但一旦我单击按钮,进度条就会消失。有什么建议或想法吗?我遇到了同样的问题,我找到了解决办法 简而言之,诀窍是使

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


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

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


我试图使用
setProgressDrawable
来实现这一点,但一旦我单击按钮,进度条就会消失。有什么建议或想法吗?

我遇到了同样的问题,我找到了解决办法

简而言之,诀窍是使用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)

嗨,Panaasta,我也在寻找这个运行时颜色变化的自定义进程轮。如果你得到答案,把答案贴在这里。。它对所有人都有用。。
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)