我的自定义ProgressBar
上有一个奇怪的行为。在Android< 4.4上,我得到了一个好结果。但是在Android 4.4上,我在ProgressBar
正在减少时获得了工件:
颜色在这里定义:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@android:id/background">
<clip>
<shape>
<corners android:radius="0dip" />
<gradient
android:angle="90"
android:centerColor="#004676"
android:centerY="0.75"
android:startColor="#004676" />
</shape>
</clip>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<corners android:radius="0dip" />
<gradient
android:angle="90"
android:endColor="#ee7407"
android:startColor="#ee7407" />
</shape>
</clip>
</item>
在我的自定义ProgressBar
课程中,我将其定义如下:
private void init() {
this.setMax(MAX);
this.setProgress(MAX);
_timer = new CountDownTimer(TIME * 1000, 100) {
public void onTick(long millisUntilFinished) {
decreaseProgress();
}
public void onFinish() {
finished();
}
};
}
private void decreaseProgress() {
this.setProgress(this.getProgress() - 1);
}
有人对我有暗示吗?提前谢谢!
答案 0 :(得分:2)
我在Nexus 5上遇到了完全相同的问题。
目前,我没有时间深入挖掘源代码并发现差异,但如果您在设置进度后立即使进度条无效,我发现可以取消此问题。
在您的情况下,它应该是:
private void decreaseProgress() {
this.setProgress(this.getProgress() - 1);
this.postInvalidate();
}
希望这有帮助!