我已在ProgressBar上应用动画,以便以恒定速度(默认情况下)从最大进度动画为0
我需要它表现得像这样:
基本上我希望动画一旦达到50%的进度就会将速度降低一半,但我希望这种过渡顺利进行。
我试图一个接一个地运行2个不同的动画,一旦第一个动画结束于动画片监听器结束回调我开始下一个具有加倍持续时间,但有一个小的恼人的暂停,它看起来不连续
我可以定义一个能够处理这个问题的插补器吗?这个公式是什么?
这是我目前的代码
private class ProgressBarAnimation extends Animation {
private ProgressBar progressBar;
private float from;
private float to;
public ProgressBarAnimation(ProgressBar progressBar, float from, float to) {
super();
this.progressBar = progressBar;
this.from = from;
this.to = to;
}
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
super.applyTransformation(interpolatedTime, t);
float value = from + (to - from) * interpolatedTime;
progressBar.setProgress((int) value);
points = (int)(value/100);
txtProgress.setText(String.valueOf(points));
setTextPosition(value);
}
}
我这样称呼它:
anim = new ProgressBarAnimation(progressBar, progressBar.getMax(), 0);
anim.setInterpolator(new ProgressInterpolator());
anim.setDuration(10000);
anim.setStartOffset(0);
progressBar.startAnimation(anim);