4

我想在运行时使用代码而不是 xml 更改搜索栏进度颜色和背景颜色。我知道如何使用 xml(Layerlist-Shapedrawable-Clipdrawable) 我无法更改其中的颜色,colors.xml因此我必须通过代码设置可绘制的进度。我已经尝试过使用 LayerDrawable 等不同的东西......但没有任何工作。有任何想法吗?

4

1 回答 1

0
public void setProgressBarColor(ProgressBar progressBar, int newColor){ 
    LayerDrawable ld = (LayerDrawable) progressBar.getProgressDrawable();
    ClipDrawable d1 = (ClipDrawable) ld.findDrawableByLayerId(R.id.progressshape);
    d1.setColorFilter(newColor, PorterDuff.Mode.SRC_IN);

}

当您更新进度时,您将看到结果。

可以吗?

于 2012-10-11T08:04:29.957 回答