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