博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 实现卡片翻转的动画(翻牌动画)
阅读量:5893 次
发布时间:2019-06-19

本文共 1540 字,大约阅读时间需要 5 分钟。

Android 实现卡片翻转的动画(翻牌动画)

需求描述

  点击卡片,卡片翻转过来显示内容。

  点击左边的卡片,将卡片翻转显示右边的图片结果。

功能实现

  因为要翻转所以使用动画来完成翻转的动画。动画分为两部分,一部分是左边的布局以中心垂直线从左向右旋转,旋转 180 度之后隐藏,另一部分是右边的布局以中心垂直线从右向左旋转,旋转 180 度之后显示。
  这种动画涉及到播放顺序的问题,所以动画使用 Animator 属性动画实现。
布局

动画文件

  • rotate_in_anim .xml

  • rotate_out_anim.xml

播放动画

tv_result.setVisibility(View.VISIBLE);    tv_sure.setVisibility(View.VISIBLE);    AnimatorSet inAnimator = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.rotate_in_anim);    AnimatorSet outAnimator = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.rotate_out_anim);    int distance = 16000;    float scale = getResources().getDisplayMetrics().density * distance;    iv_result.setCameraDistance(scale); //设置镜头距离    tv_result.setCameraDistance(scale); //设置镜头距离    outAnimator.setTarget(iv_result);    inAnimator.setTarget(tv_result);    outAnimator.start();    inAnimator.start();    outAnimator.addListener(new AnimatorListenerAdapter() {        @Override        public void onAnimationEnd(Animator animation) {            super.onAnimationEnd(animation);            iv_result.setVisibility(View.GONE);            iv_result.setAlpha(1.0f);            iv_result.setRotationY(0.0f);        }    });

  注意:动画的实现方式是使用了属性动画 Animator 实现的,如果动画需要再次显示,那么在动画结束之后就需要将控件的属性值设置为初始值,因为属性动画会修改控件的属性值为动画结束时的属性值。

参考文章

转载于:https://www.cnblogs.com/zhangmiao14/p/10285862.html

你可能感兴趣的文章
Git使用详细教程
查看>>
linux 查看进程使用(打开)的文件
查看>>
Java基础学习总结(9)——this关键字
查看>>
提取用户下的所有表的表结构
查看>>
[IOI2018]组合动作——构造
查看>>
BZOJ1430小猴打架——prufer序列
查看>>
浅谈IT路的职业规划
查看>>
Webtoos 仿Q+云桌面框架
查看>>
Liunx查找命令解析与分析
查看>>
10条命令,1分钟时间检查Linux服务器性能
查看>>
python一个发邮件的函数
查看>>
mailto用法
查看>>
编程如何入门(创世纪新篇)
查看>>
EIGRP产生默认路由的方法
查看>>
php转义和正则问题
查看>>
Spring源码阅读--@Autowired注解自动装配
查看>>
Integrating Perl REST service with jQuery and a da
查看>>
给普通用户像ROOT用户一样权限!
查看>>
【MySQL】【安全】探讨MySQL备份所需最小权限
查看>>
各项异性过滤
查看>>