之前在某一个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
网友评论