自定义视图中的Android动画在进行交互时无法播放

时间:2016-07-05 18:31:34

标签: android animation

我正在尝试在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();

0 个答案:

没有答案