原理不做分析,只写解决方案
在Android代码中直接调用setProgressDrawable不好用,应为getDrawable的时候 bounds 都是0,如下可以实现效果
Drawable draw = getResources().getDrawable(R.drawable.errorprogressbar);
draw.setBounds(progressBar.getProgressDrawable().getBounds());
progressBar.setProgressDrawable(draw);
progressBar.setProgress(0); //只有在progress发生变化时才会重绘,多掉一次防止重复调用的时候界面显示不对
progressBar.setProgress(10);