美文网首页Android开发
2016.11.22随笔-Android翻转动画

2016.11.22随笔-Android翻转动画

作者: ShadowHapiness | 来源:发表于2016-11-22 12:38 被阅读337次

Android 动画


由于产品需求,需要呈现出一个listView中item的翻转动画。于是便开始接触实现动画效果。
先来说说想要实现的效果:
1.在item中,点击按钮进行动画翻转。
2.翻转过程:指定view沿X轴进行向上翻转90°消失,指定view继续向上翻转90°显示。(归纳为:一个view翻转180°后显示另外一个view)

实现方案:使用属性动画。

public static void FlipAnimatorXViewShow(final View oldView, final View newView, final long time) {

    ObjectAnimator animator1 = ObjectAnimator.ofFloat(oldView, "rotationX", 0, 90);
    final ObjectAnimator animator2 = ObjectAnimator.ofFloat(newView, "rotationX", -90, 0);

    animator1.addListener(new Animator.AnimatorListener() {
        @Override
        public void onAnimationStart(Animator animation) {

        }

        @Override
        public void onAnimationEnd(Animator animation) {
            oldView.setVisibility(View.GONE);
            animator2.setDuration(time).start();
            newView.setVisibility(View.VISIBLE);
        }

        @Override
        public void onAnimationCancel(Animator animation) {

        }

        @Override
        public void onAnimationRepeat(Animator animation) {

        }
    });
    animator1.setDuration(time).start();
}

本以为自己写的没有问题(其实确实没问题),但是由于是用在listview中,每当数据一刷新,需要显示新的数据,并且需要还原到oldView的内容。于是,我便只在数据刷新重新绘制界面时,让oldView.setVisibility(View.VISIBLE)。却在demo中的显示效果并不理想,oldView中并不是显示之前的内容。
根本原因:原因在于oldView向上翻转动画90°结束后,将oldView的RotationX属性设置为了90,此时oldView的视图仅仅只是条线段。所以,根本不会显示之前的内容数据。
解决方案:只需要在动画结束时,将oldView的RotationX属性设置回0就可以了。

oldView.setRotationX(0);//这行代码要求在api level在11以上
ViewCompat.setRotationX(oldView, 0);//因此想要兼容11一下的版本,使用v4包中的ViewCompat
未命名.gif

相关文章

  • 2016.11.22随笔-Android翻转动画

    Android 动画 由于产品需求,需要呈现出一个listView中item的翻转动画。于是便开始接触实现动画效果...

  • 简单实现签到翻转硬币效果

    翻转硬币实际上就是翻转textview,众所周知Android有个动画类Animation.Java,Rotate...

  • Android 创建卡片旋转效果

    官网-创建卡片翻转动画[https://developer.android.google.cn/training/...

  • 翻转日记36 2016.11.22

    【翻轉日記,三十六】 學期過半,學生基本掌握了查詢資料和整理製作幻燈片的方法,並且已經習慣上台展示。下一步的推進就...

  • 随笔2016.11.22

    冬天用一场大雪怒刷自己的存在感。满街黄叶还未随风飘散,积雪便压上枝头。 你发来消息说,看着路上来往车辆的速度和行人...

  • Android view翻转动画

    [积累 https://github.com/yayaa/Rotatable] [转载 http://www.ji...

  • android卡片翻转动画

    先看效果 这个demo是仿照极客学院某个2D卡片翻转的效果做的。原来的demo是使用了补间动画, 我这里改用了属性...

  • Android 卡片翻转动画

    ui显示在卡片背面视觉效果 先上布局activity_animate animate_positive anima...

  • 卡片翻转动画

    昨天看到一个android双面翻转动画FlipAnimation,好好玩。 顺便看了其中的源码,发现作者没有实现左...

  • iOS 动画

    移动动画 渐隐 缩放 翻转 重复动画

网友评论

  • sirai:你好 ,那你的这个停止是用的 clearAnimation();?
    ShadowHapiness:@sirai 是互相调起 你可以互相监听两个动画。需要end的时候做相应的操作。由于我这里不需要取消动画 所以就没做处理
    sirai:@ShadowHapiness 两个anima互相调起 你能cancel掉吗 cancel之后走的不是end 方法吗?
    ShadowHapiness:@sirai cancel()取消动画

本文标题:2016.11.22随笔-Android翻转动画

本文链接:https://www.haomeiwen.com/subject/qvyppttx.html