我想使用setProgressDrawable
方法动态更改进度条上的外观,而不涉及xml文件。
我看到了这个答案:Create a progress drawable programmatically,但有些原因,它只设置进度背景颜色。实际进度颜色甚至没有出现。我正在做的是什么?
我的代码:
public static LayerDrawable createDrawable(int accentColor, int backColor) {
ShapeDrawable shape = new ShapeDrawable();
shape.getPaint().setStyle(Style.FILL);
shape.getPaint().setColor(backColor);
ShapeDrawable shapeD = new ShapeDrawable();
shapeD.getPaint().setStyle(Style.FILL);
shapeD.getPaint().setColor(accentColor);
ClipDrawable clipDrawable = new ClipDrawable(shapeD, Gravity.LEFT,
ClipDrawable.HORIZONTAL);
LayerDrawable layerDrawable = new LayerDrawable(new Drawable[] {
clipDrawable });
return layerDrawable;
}
设置新的drawable
progressBar[i].setProgress(Integer.parseInt(internal_marks[i]));
progressBar[i].setProgressDrawable(createDrawable(accent_list[mIndex],getResources().getColor(R.color.progressBack)));
仅供参考:如果我使用xml而不是通过syromaically创建drawable,它可以正常工作,但我想动态地进行。