我读到使用Handler或AsyncTask可以完成更新UI的工作,并且可以解决问题。
uiHandler.post(new Runnable() {
VerticalSeekBar vs;
Rect bounds;
int progr;
int max;
int width;
int height;
{
vs = verticalSeekBars.get(currentNote);
bounds = vs.getProgressDrawable().getBounds();
progr = vs.getProgress();
max = vs.getMax();
width = vs.getWidth();
height = vs.getHeight();
}
public void run() {
if(currentBytes != 0) {
VerticalSeekBar vsBack = verticalSeekBars.get(currentNote-1);
Rect bounds = vsBack.getProgressDrawable().getBounds();
int progr = vsBack.getProgress();
int max = vsBack.getMax();
int width = vsBack.getWidth();
int height = vsBack.getHeight();
vsBack.setProgressDrawable(prDrInactive);
vsBack.getProgressDrawable().setBounds(bounds);
vsBack.setMax(max);
vsBack.setProgress(1);
vsBack.setProgress(progr);
vsBack.onSizeChanged(width, height);
vsBack.refreshDrawableState();
}画笔记。
prDrInactive = vs.getProgressDrawable();
vs.setProgressDrawable(prDrActive);
vs.getProgressDrawable().setBounds(bounds);
vs.setMax(max);
vs.setProgress(1);
vs.setProgress(progr);
vs.onSizeChanged(width, height);
vs.refreshDrawableState();
}
});