Android Seekbar在运行时如何改变进度条颜色

4

我希望能在运行时使用代码更改seekbar进度颜色和背景颜色,而不是使用xml。我知道如何使用xml(Layerlist-Shapedrawable-Clipdrawable)来实现这一点。由于无法在我的colors.xml中更改颜色,因此我必须通过代码设置进度绘制。我已尝试使用LayerDrawable等不同的方法,但没有成功。有什么想法吗?

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);

}

当你更新进度时,你会看到结果。

可以吗?


谢谢你的回答,但那不是我在寻找的内容。 我已经尝试过这个方法,但问题是我正在使用一个具有起始、中心和结束颜色的渐变来表示进度。而ColorFilter会将整个进度条的颜色修改为同一种颜色。 - user1737291

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接