我正在尝试在Android中制作图表,并且我的代码基于此example from Google。
因此,用户可以自由地缩放和平移图表,但现在我试图在图表的视口上设置尺寸更改的动画。动画本身很好用,但问题是我在与图表交互时无法播放,所以如果我正在缩放动画,那么直到我完成动画才会播放。我希望在我缩放或平移时播放动画。我怎样才能做到这一点?
这是我的可动画的RectF。
public class AnimatableRectF extends RectF {
public AnimatableRectF() {
super();
}
public AnimatableRectF(float left, float top, float right, float bottom) {
super(left, top, right, bottom);
}
public AnimatableRectF(RectF r) {
super(r);
}
public AnimatableRectF(Rect r) {
super(r);
}
public void setTop(float top){
this.top = top;
}
public void setBottom(float bottom){
this.bottom = bottom;
}
public void setRight(float right){
this.right = right;
}
public void setLeft(float left){
this.left = left;
}
}
这就是我开始动画的方式。
ObjectAnimator animateTop = ObjectAnimator.ofFloat(mCurrentViewport, "top", mCurrentViewport.top, smallest - margin);
animateTop.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
postInvalidate();
}
});
AnimatorSet rectAnimation = new AnimatorSet();
rectAnimation.playTogether(animateTop, animateBottom);
rectAnimation.setDuration(500).start();