首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android实用View:水波动效果(多种方式)

androidcustomview/widget/WaveViewBySinCos.java 文章目录 前言 开篇 正余弦函数实现 贝塞尔曲线实现 两种方式对比总结 1 前言 这次给大家带来的是一篇关于自定义View实现水波动效果的文章...,其实在去年项目中使用过类似的动画,当时就自定义View也实现了预期的效果,最近项目中又使用了相似的效果,于是对代码重新整理了一下并且记录下来,便于以后有类似需求可以当作参考!...开启动画之后再运行一下看看效果吧 ?...计算控制点纵坐标的方式.png 根据计算得到起点和控制点坐标之后就可以写代码运行了效果和上边的运行效果一样就不再展示了,上边的计算内容就解释了代码提出的问题 ?...正余弦函数的波形使用是根据相位控制的,而贝塞尔曲线实现的波形效果是不断改变波的起始位置控制的,并且使用贝塞尔曲线的话需要先在屏幕外边绘制一个完整的波形,保证在平移的过程中可以看到图像不间断的移动来达到移动的波形效果

76520

Android 贝塞尔曲线实现水纹波动效果

效果图 本文,最终实现效果如图所示: ? 从图中我们可以看出,水纹不断波动并且上涨,当上涨超过屏幕时,自动最初高度波动,接下来,我们就来看如何实现这一效果。...矩形表示手机屏幕(这个自定义view默认是充满屏幕的),波浪线表示水纹波动效果。 一段水波纹是曲线AD,我们只需要让这段曲线不断的滚动就实现了水波纹动画。...曲线AD我们可以用贝塞尔曲线分别画出曲线AC和曲线CD,我们之所以从屏幕外开始画是因为水波纹要不断的波动要确保任何时刻都能看到水波纹,所以我们需要在屏幕前后及屏幕内画满水波纹。...此时我们的看到AD曲线绘制回来了,为了看起来更像水纹波动,还需要将D点和A点之间下方的空隙连接起来 path.lineTo(getWidth(), getHeight()); path.lineTo(0...,getHeight()); path.close(); 连接起来后,运行效果如图所示: ?

1.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

JS动画效果

JavaScript 动画框架 框架封装 ---- 相信大家在很多门户网站上都可以看到动画的交互效果,通过这些动画生动地体现了我们在网页上的交互效果,现在我们就来学习一下这些动画效果的分解动作吧。...动画的实现思路都是通过连续改变物体的属性值来实现效果的。一般来说都是改变一个物体的left,right,width,height,opacity....li> 四.链式动画 首先把上面的简单运动框架抽取出来然后加上透明度的变化,放进一个人通用的JS文件里movement.js...filter: alpha(opacity:30); opacity: 0.3; } <script src="move.<em>js</em>...JSON的格式: {键:值,键:值} 完善后的运动框架<em>js</em>:movement.<em>js</em> function getStyle(obj,attr) { if(obj.currentStyle){

20.7K81

Android 实现圆圈扩散水波动效果两种方法

两种方式实现类似水波扩散效果,先上图为敬 自定义view实现 动画实现 ?...自定义view实现 思路分析:通过canvas画圆,每次改变圆半径和透明度,当半径达到一定程度,再次从中心开始绘圆,达到不同层级的效果,通过不断绘制达到view扩散效果 private Paint centerPaint...canvas.drawCircle(centerX, centerY, radius, centerPaint); //TODO 可以在中间圆绘制文字或者图片 //延迟更新,达到扩散视觉差效果...相比较而言,自定义view的效果更好点,动画实现起来更方便点。 两种方式实现的扩散效果介绍完毕,具体项目里还是要按需变动的。...总结 以上所述是小编给大家介绍的Android 实现圆圈扩散水波动效果两种方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。

3.4K40

圆盘时钟效果 原生JS

圆盘时钟 旋转时钟 数字时钟 写在前面 仿荣耀手机时钟,设计的同款时钟效果 实现效果 ?...背景采用的是一个炫彩流光的效果,利用了CSS3新增的动画效果 这部分的炫彩流光效果在之前的博客中有详细讲到 炫彩流光效果 指针时钟 通过定位将三根针重叠在一起,下端对齐都摆在原点,通过transfrom-origin...+ (rotateM / 60)) + 'deg' + ')' 就像这样把分针旋转了多少反馈给时针,60分钟一个小时,所以是除以60 旋转时钟 这里采用的是clip-path属性采取另一半的圆,圆环的效果采用的是大小圆的思路...226,20,233),rgb(41, 41, 41)); clip-path: inset( 0 50% 0 0 ); transform-origin: center center; } JS...,圆环的实现,也只是通过了简单的裁剪,想不到实现圆弧的效果 代码有点长,如需完整代码,可以留言或私信

11.6K20
领券