Android 卡片旋转切换动效实现详解
Android 卡片旋转切换动效实现详解
wild_eagle_
个人博文,此公众号作为 https://www.chenwenguan.com/ 博客内容的同步,只有自由行游记单独发在公众号。
Android 卡片旋转切换显示动效,加流光结束效果实现详解,附上GitHub代码资源(Kotlin),先看下实现效果GIF。
一、实现原理详解
1. 动画实现拆分
整体动画拆分成几部分再拼凑起来,第一步是卡片正面顺时针旋转+缩放,第二步是卡片Y轴方向翻转到背面,最后是叠加一个View显示流光效果。卡片的正面和背面分别用单个控件来单独实现各自的动效部分,叠加之后形成最终的效果。
第一部分rotation、scaleX和scaleY属性叠加,使用AnimatorSet一起执行这些属性的变化。
val ratationAnim = ObjectAnimator.ofFloat(mIvCardfront, "rotation", -45f, 0f)
val scaleXAnim: ObjectAnimator =
ObjectAnimator.ofFloat(mIvCardfront, "scaleX", 0.3f, 1f)
val scaleYAnim: ObjectAnimator =
ObjectAnimator.ofFloat(mIvCardfront, "scaleY", 0.3f, 1f)
第二部分卡片正面Y轴翻转从0到-90度,卡片背面从90度到0度。
val rotationYAnimFront = ObjectAnimator.ofFloat(mIvCardfront, "rotationY", 0f, -90f)
val rotationYAnimBack = ObjectAnimator.ofFloat(mIvCardBack, "rotationY", 90f, 0f)
在以上动画结束之后执行流光效果动效,动效的序列化执行使用AnimatorSet的playSequentially方法即可。
第三部分是最终的流光效果,这个使用ValueAnimator线性变换坐标点值绘制LinearGradient线性变化颜色区域即可,参考开源项目Android流光动效View( https://gitee.com/chockqiu/LightingAnimationView )实现。
如果不需要限制流光绘制区域,可注释掉onDraw回调中mClipPath的绘制处理逻辑。
二、GitHub仓库链接地址
https://github.com/wenguan0927/CardAnimView
扩展阅读:
美图手机音乐Widget动画实现
Android 心率动画自定义控件实现
公众号文章不支持外链,点击【阅读原文】可直接访问,网站博客会不定时更新补充内容。
-
2023年血糖新标准公布,不是3.9-6.1,快来看看你的血糖正常吗? 2023-02-07
-
2023年各省最新电价一览!8省中午执行谷段电价! 2023-01-03
-
GB 55009-2021《燃气工程项目规范》(含条文说明),2022年1月1日起实施 2021-11-07
-
PPT导出高分辨率图片的四种方法 2022-09-22
-
2023年最新!国家电网27家省级电力公司负责人大盘点 2023-03-14
-
全国消防救援总队主官及简历(2023.2) 2023-02-10
-
盘点 l 中国石油大庆油田现任领导班子 2023-02-28
-
我们的前辈!历届全国工程勘察设计大师完整名单! 2022-11-18
-
关于某送变电公司“4·22”人身死亡事故的快报 2022-04-26
