Android撒花效果

您所在的位置:网站首页 撒花动画怎么做 Android撒花效果

Android撒花效果

2023-10-21 22:12| 来源: 网络整理| 查看: 265

这个功能源于好轻APP打卡功能(Author : True Lies),当时做这个功能得时候有点摸不着头脑 不过还是做出来了,下面具体实现一下功能

我们先来看一下效果是什么样的: 这里写图片描述

1.第一步,我们需要不规则的碎片,这里我们需要绘制一个个不规则的View

不规则View采用line进行连接 然后将连起来然后填充就好了,那么我们的点怎么确定呢,看图:

这里写图片描述

我们所有的点都在红色区域 那么我们确定外围的框和内围的框就好了 ,一个外围,一个内围,取相减值就好了,然后用Point装载就可以了

这里写图片描述

这里的mPadding就是内围和外围的距离 我默认的是10 开始绘制不规则View:

这里写图片描述 这段代码就不讲述了,比较简单

2.那么好了,我们绘制完了不规则的View,现在接下来是怎么让它动起来,实现撒花效果呢:

1.首先我们需要这些不规则的View从上往下动画下来,我们首先想到的是距离的改变,但是这样重复绘制效 率是比较低的,而且不好控制,那么我们现在需要用到贝塞尔动画(贝塞尔线性动画不懂请左转百度), 那么我们就需要用到ValueAnimator和TypeEvaluator。 2.这里我贴一下贝塞尔动画的公式 1-3阶的 三阶公式 B(T) = p0((1-t)(1-t)(1-t))+3P1t((1-t)(1-t))+3p2(t*t)(1-t)+p3(t*t*t) 二阶公式 B(T) = (1-t)*(1-t)*P0+2t(1-t)P1+t*t*P2 一阶公式 B(T) = P0+(P1-P0)*t=(1-t)P0+t*P1 简单讲述一下,p0是我们开始的点 pX-p(最大长度-1) 都是我们的控制点(及p1 p2) ,那么p3就是我们的结束点,而t是时间,即0-1的过程 3.这里我们采用的是3阶的贝塞尔,如果需要更多阶位的请左转百度德卡斯特里奥算法, 4.控制点,我们开始的控制点好得到,即屏幕最上和屏幕最下,那么中间的两个呢?这里我采用的是屏幕中间 分割线第一个控制点在半屏之上,第二个控制点在半屏之下(这是Y轴),那么x轴就是全屏宽度,不过建议x起 始点是以屏幕宽度一半为基础,向左移动半屏,然后x的最大宽度为2*屏幕宽度

最终我们得到这样的: 这里写图片描述

3.这里为了效果好看一点,我们加入一些插值器,随机的: 这里写图片描述

最后我们完成了一个花瓣飘落的效果,所以我们需要很多,这里可以用hanlder和Runnable延迟来做

这里写图片描述

最后来看一下动态的效果:

这里写图片描述

[最后附上下载地址](http://download.csdn.net/download/u010192548/9991818)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3