我需要以编程方式将辅助进度栏颜色设置为

我只看到方法

ProgressBar.setProgressDrawable(drawable)

用于设置原色,但是没有用于设置第二色的方法。

我该怎么办?

最佳答案

ProgressBar.getProgressDrawable()返回一个LayerDrawable,其中:

LayerDrawable progressDrawable = (LayerDrawable) getProgressDrawable();
Drawable backgroundColor = progressDrawable.getDrawable(0);
Drawable secondaryColor = progressDrawable.getDrawable(1);
Drawable primaryColor = progressDrawable.getDrawable(2);

我尝试修改白色的颜色(示例):
progressDrawable.setDrawableByLayerId(progressDrawable.getId(2), new ClipDrawable(...));

但有时屏幕会卡住,有时会崩溃。
最终,我因时间不足而放弃了搜索。
对不起 :(

米歇尔

10-08 14:37