我试图使一个imageview围绕它的Y轴旋转,类似于卡片翻转,但它应该在两侧都有相同的图片。
要做到这一点,我在AnimationSet中使用ObjectAnimator(虽然这种情况发生在Y旋转是集合中的唯一动画时,以及当它与其他动画结合时),以围绕Y轴将其从0旋转到-180。这第一次工作正常。但是,如果我再次单击它,图像将突然被镜像,然后围绕Y轴旋转180度。
为什么在动画制作之前图像会被镜像/反转?我目前的想法是它保留了一些属性,所以当它首先从0变为-180时,下次它将从-180跳到0,然后再次从0旋转到-180。我不确定这是不是原因,但如果是的话,我该怎样解决这个问题并防止它发生?
谢谢!
如果我理解你,这是因为ObjectAnimator
实际上并不实际应用最终值。你必须使用AnimationListener
和onAnimationEnd
来保存视图的状态。
动画完成后,尝试将Y旋转重置为零。
animation.addListener(new AnimatorListenerAdapter() {
@Override public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
view.setRotationY(0);
}
});