
之前在某一个app上看见这种流光特效非常酷炫,就想着学习怎么编写出来,以下是我所编写的流光特效代码:
这是kotlin编写出的
一、首先先确定流光最初位置的坐标点:

二、然后配置每一个点移动的距离:

三、设置一个数值发生器来获取每次移动的数值

四、启动这个动画

五、通过每次测量后的方法来执行,确定控件已经生成并测量

绘制这个流光特效:

记得在控件隐藏或者移除窗口时取消动画,避免内存泄漏:

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
下面这个六边形流光和上面的正方形流光差不多,只是需要去计算流光六个点的位置,然后去移动这六个点形成一个六边形的样式

六边形流光
Example:
private val yTopOff = 13
private val xSlant = 35
private val ySlant = 19
private val length = 40

计算:

最后得出绘制的移动数值:
getYParams(x:Float) = k * x+ b

网友评论