水波扩散是一个比较好看的交互效果,特别是在某些以水为故事发生场景的游戏中,扩散的水波会让场景更加栩栩如生 ?...demo 实现思路 如果水波静止,我们看到的其实是像素点围绕着某个中心点的拉伸效果,我们只需让每个像素点叠加上它和中心点的向量差,就能够呈现出画面上的所有像素围绕中心点的拉伸感。...周期性往外涌 这种呼吸灯式的涌动其实和我们的最终效果有很大区别,因为它永远在循环涌动,但是我们的水波是从中心扩散出去之后,中间部分就不再动了的,怎么让中间的像素不再多次涌动呢?...如果把一圈水波比作圆,那水波的扩散行为其实就是这个圆的半径在不断的增大,圆外面的波纹有效,圆里面的波纹静止。...未调优效果 接下来的就是参数的调试,主要是三角函数的采样那里,我们希望水波能够产生多个波动,所以我们需要乘上一定的倍数,让函数的作用范围足够大,才能有足够多的波峰谷底。
充电摇晃效果 大体上采用伪元素来实现的电池充电效果 实现效果 实现思路 首先搭建一个html框架,建出电池模型 先尝试利用动画实现水面上升的效果 利用伪元素不规则的圆,定位在水的上半部分,让这个不规则的圆...,来遮盖水,从而使水面出现不均,再让不规则的圆旋转,使得,遮盖水面的情况不一样,形成涟漪的效果 再利用伪元素,同样的方法建一个不规则圆,给点透明度,出现背后的阴影效果 要点分析 创建明显的水纹 .wave...::before { position: absolute; content: ''; top: -185px; left: -50px;//通过调试定位到合适的位置...//在上面的基础上添加一定的透明度 opacity: .5; 完整代码 <!...,发现自己还有很多的不足,有很多的知识点疏漏,希望面前的你,能够再细致一点,再努力一点,加油吧!
长按水波纹扩展效果 前言 水波纹效果从Android5.0就已经出来了,基本的使用相信大家都知道了,这里多谈一些相对深层次的使用: 1、基本使用 2、水波纹效果与布局绘制之间的问题 3、长按水波纹扩散效果...Mask的内容并不会被绘制到屏幕上,它的作用是限定Ripple效果的绘制区域。 最后可以得到我们想要的效果: ? image.png 长按水波纹扩散效果 ?...长按水波纹扩展效果 在使用小红书时,我们可以看到关于“笔记”的item长按会展示扩散的效果,其实原理也很简单。...无边界的水波纹可以达到长按扩散的效果,只是它会超出边界,那我们就在对应的父布局加一层有边界的水波纹背景即可。...参考资料 Ripple 水波纹效果 聊聊Android5.0中的水波纹效果 解决点击ripple水波纹无效的问题 UI之修改Button颜色保持默认点击效果
本文实例为大家分享了Android 5.0 实现水波扩散效果的具体代码,供大家参考,具体内容如下 该效果是通过自定义界面来实现的 1、首先自定义属性,attrs.xml代码如下: <?...2、自定义RippleView类继承RelativeLayout布局,也可以由需求所定继承于其它类,实现水波扩散效果主要的有两点:水波扩散的绘制和动画 1)水波的绘制其实就是绘制一个圆形 canvas.drawCircle...(mDownX, mDownY, mRadius, mRipplePaint); 2)动画效果就是该圆形的绘制从小到大的过程,而该圆形到最大时的半径长度就是当前所在布局的对角线长度: @Override...private ObjectAnimator mRippleAnim;// 显示水波动画 private float mRadius;// 当前的半径 private float mMaxRadius...;// 水波最大半径 private float mDownX; // 记录手指按下的位置 private float mDownY; private boolean mIsMask; private
RippleButton.gif 基本思路是自定义控件继承至Button,记录手势抬起坐标,利用RadialGradient实现效果 private Paint ripplePaint = new...Paint(); private RadialGradient radialGradient; //递增的半径 private float radius = -1; private...float currentX; private float currentY; 在onTouchEvent事件中记录手指抬起的坐标 @Override public boolean...switch (event.getAction()) { case MotionEvent.ACTION_UP: //记录手抬起的点...postInvalidate(); break; } return super.onTouchEvent(event); } onDraw方法中实现效果
本文为大家分享了Android实现水波纹效果展示的具体代码,供大家参考,具体内容如下 一、效果 ?...二、实现原理 自定义view,使用Path和贝塞尔曲线绘制,然后不断刷新,并且改变X、Y的值 主要知识点rQuadTo的使用 三、实现 WaveView.java public class WaveView...= -wavelength; i <= getWidth() + wavelength; i += wavelength) { /** * 相对绘制二阶贝塞尔曲线(相对于自己的起始点...--也即是上一个曲线的终点 ) * float dx1 相对于上一个曲线的终点 的距离 * float dy1 * float dx2 * float...以上就是本文的全部内容,希望对大家的学习有所帮助。
本文实例为大家分享了RecyclerView实现水波纹点击效果的具体代码,供大家参考,具体内容如下 效果图 ?...item.xml 这里就是主要设置background为我们后面写的一个selector <?xml version="1.0" encoding="utf-8"?...colorPrimary" <item android:drawable="@color/write"/ </ripple drawable/recycler_item_selector.xml (v21版本以下的没有水波纹效果...LinearLayoutManager.VERTICAL,false)); mRecyclerView.setAdapter(myAdapter); } } github :RecyclerView水波纹效果...以上就是本文的全部内容,希望对大家的学习有所帮助。
引言 水波纹效果是一种常见且迷人的视觉效果,广泛应用于游戏和图形设计中。在这篇博客中,我们将使用Python创建一个逼真的水波动画。...通过利用Pygame库和基于网格的算法,我们可以实现动态水波纹效果。 准备工作 前置条件 在开始之前,你需要确保你的系统已经安装了Pygame库。...: pygame.init() screen = pygame.display.set_mode((800, 600)) pygame.display.set_caption("水波纹效果") clock...= pygame.time.Clock() 定义水波类 我们创建一个Water类来定义水波的属性和行为: class Water: def __init__(self, width, height...我们定义一个函数来绘制水波效果: def draw_water(screen, water): for y in range(water.height): for x in range
二、RippleDrawable基本概念介绍 (1)、RippleDrawable RippleDrawable可以实现上面效果图中的水波纹效果,它是在API 21 中添加的,所以,低于21的版本中不可使用...没有指定mask ,并且也没有指定radius 时,会以控件宽高中的较大值为直径绘制水波纹,这样就必然会超出控件的范围,所以,这种效果也叫做 无界水波纹效果。...指定mask 后 ,id 为 mask 的item 中指定的drawable 可以限定水波纹的范围。 三、代码示例: (1)、xml 中定义 ripple 下列代码依次对应效果图中的前6个。...--无界水波纹效果,所谓无界,实际是以空间宽度或高度中的大值作为直径绘制一个园--> <TextView android:layout_width...--有界水波纹效果。
本文实例为大家分享了Android实现水波纹扩散效果的具体代码,供大家参考,具体内容如下 先上图 ? 囧!没有图片所以就拿了小安代替了。 先看一下如何使用这个View。...mInitDataSucceed){ initData(); } } 显示图片的View的大小,该怎么给?这是个比较蛋疼的问题。给大了就看不到扩散效果了,给小,给多少的值合适呢?...有没有正好的值,有的用父 view 的 size / 子 view 放大的倍数,这样肯定会达到理想的效果。...= 3;//波纹view的个数 private static final float DEFAULT_SCALE = 1.6f;//波纹放大后的大小 //点击有扩散效果的view private CircleImageView...position); wave.startAnimation(mAnimas.get(position)); super.handleMessage(msg); } }; 参考地址:Android实现水波纹外扩效果
View实现水波动画效果的文章,其实在去年项目中使用过类似的动画,当时就自定义View也实现了预期的效果,最近项目中又使用了相似的效果,于是对代码重新整理了一下并且记录下来,便于以后有类似需求可以当作参考...;φ,相位,我们就是根据不断改变相位来达到波形移动的效果,每次移动多少可以从外界传入,便于控制速度;K,波形偏移上下的距离,知道了以上各个参数的具体使用意义,下边就可以直接通过代码看下具体实现效果了,毕竟公式都有了...计算控制点纵坐标的方式.png 根据计算得到起点和控制点坐标之后就可以写代码运行了效果和上边的运行效果一样就不再展示了,上边的计算内容就解释了代码提出的问题 ?...正余弦函数的波形使用是根据相位控制的,而贝塞尔曲线实现的波形效果是不断改变波的起始位置控制的,并且使用贝塞尔曲线的话需要先在屏幕外边绘制一个完整的波形,保证在平移的过程中可以看到图像不间断的移动来达到移动的波形效果...最终效果:录制模拟感觉有点卡顿,请真机测试哦.gif 看到这里你是你会感觉到这篇文章的内容其实很简单,只要中间的几个点注意一下就可以实现相应的效果了,建议朋友们动手敲一遍代码,加深一下印象,毕竟真是做出来和知道理论没有实践还是有很大区别的
前言 学习Vue了一段时间,个人还是比较喜欢Material Design风格的框架,找了很久,最满意的也就是Muse-ui了。...然后就发现了一个超级恶心和严重的问题,它不支持Vue@2.6.8以上版本。...具体表现就是版本不符的时候没有基本的波纹效果(要MD就是要找个风格没有这个我玩nm),我本来以为是Chrome的问题,但是,直到我提交了issue,得到回答查了很多资料,就连官方都没告诉你怎么降版本,自己捣鼓了一晚上算是搞定了...vue-template-compiler npm uninstall vue npm uninstall vue-template-compiler vue-template-compiler这个和vue是同版本号的,...结束 真的发现真正的干货网上太少了,或者有人写过但是博客和我一样是个人博客,压根搜不到。唉 如果这篇文章帮助到你了,请分享给你的朋友,感激不尽。
GestureDetector 使用点击无水波纹出现,InkWell可以实现水波纹效果。...,如上中的Container中如果加入了color:Colors.white,或者是Container中的其他widget设置了coloro属性,这时候InkWell的水波纹效果会无效。...,例如 lnk 设置的圆角为20,而Ink没有设置,就会出现 矩形的水波纹点击效果 ?...3 圆角widget 设置自定义水波纹颜色点击效果 ?...//水波纹的颜色 设置了highlightColor属性后 splashColor将不起效果 splashColor: Colors.red, //true表示要剪裁水波纹响应的界面 false
前言 本文将介绍如何增添水波荡漾效果,效果如图所示: 教程链接:https://weilining.cf/24.html 操作 在\themes\butterfly\source\js目录下创建一个...}); } catch (e) { $(".error").show().text(e); } }); 找到主题配置文件_config.butterfly.yml,在inject的bottom..."> - 未开启 pjax inject: head: bottom..."> - 重新部署,启动,就可以看到效果啦。...结尾 用一些特定的背景,再搭配水波特效简直绝美。
本文讲述了Android实现水波纹扩散效果的实例代码。分享给大家供大家参考,具体如下: 项目地址下载 1.效果图: ?...android:background="#37B158" app:show_spacing_time="800"//动画播放间隔时间 app:imageViewWidth="35dp"//图片的大小...*/ private ImageView [] imgs=new ImageView[SIZE]; /**背景图片*/ private ImageView img_bg; /**水波纹和背景图片的大小*...imageViewHeigth)); //添加一个规则 params.addRule(RelativeLayout.CENTER_IN_PARENT,RelativeLayout.TRUE); /**添加水波纹图片...方法========================================= /** * 开始水波纹动画 */ public void startWaveAnimation() { imgs[
微信曾经推出了一个查找附近好友的功能,大致功能是这样的:屏幕上有一个按钮,长按按钮的时候,会有一圈圈水波纹的动画向外扩散,松手后,动画结束。...现在简单来实现这样的一个动画功能: 思路: 主要用到了下面的蓝色的图片,定义三个ImageView,background都设置为蓝色的图片,然后定义一个包括缩放和透明度变化的动画集,然后每隔一段时间,...让3个ImageView依次启动这个动画集,看起来就像蓝色的圆圈像水波纹向外扩散一样。...clearWaveAnimation() { mWave1.clearAnimation(); mWave2.clearAnimation(); mWave3.clearAnimation(); } } 效果如下...以上就是本文的全部内容,希望对大家的学习有所帮助。
1.jpg 鼠标移入时的小手、鼠标点击时按钮下压弹起的动画、触屏应用点击时的屏幕震动,这些效果都给予用户一种是我的行为产生了这样的效果的直觉,这些效果也被统称为点击反馈,虽然看似是应用中的细枝末节,但是只要稍微投入一点点心思...,带来的用户体验提升是十分明显的 水波效果 这里作者为小伙伴们推荐一种作者最喜欢的点击反馈效果。...当用户点击时,会以点击中心为圆心产生一个水波扩散的涟漪效果,适用各个场景,美观又不浮夸,关键是可以给用户带来很直观的反馈。...第一个箭头: 期望得到的水波 第二个箭头: 元素(0,0)点创建的水波 第三个箭头: 元素(0,0)点创建的水波, 不带圆角效果 A8214090-1AC5-4091-BEF0-CFA38B105E35....png 我们可以发现通过元素(0,0)点创建的水波进行一定偏移就可以得到我们想要的水波,由此我们可以推断出 动画结束时的水波的尺寸 = 圆的斜边 创建时的(x,y) = 用户点击的位置 过度动画结束时的
效果图 Demo源码 wxml </view
水波纹效果已经不是什么稀罕的东西了,用过5.0新控件的小伙伴都知道这个效果,可是如果使用一个TextView或者Button或者其它普通控件的话,你是否知道如何给它设置水波纹效果呢?...OK,我们今天就来看看这个水波纹效果的实现。水波纹效果的实现有系统自带属性可以实现,我们也可以自定义实现效果。...1.系统自带水波纹实现方式有界水波纹 水波纹效果大致上可以分为两种,一种是有界的,一种无界,我们先来看看有界水波纹效果: 效果: ?.../ 所谓的无界并非完全无界,而是以控件宽高中最大的数值作为水波纹效果所在正方形的边界进行绘制。OK,这两种都是系统自带的水波纹效果,如果我们想要自定义又该怎么做呢?...Ok,这就是5.0中水波纹效果的使用。
本文为Varlet组件库源码主题阅读系列第九篇,读完本篇,可以了解到如何使用一个div创建一个点击的水波效果。...setStyles(this) // 将水波元素添加到被点击元素内 this.appendChild(ripple) // 20ms后修改水波元素的样式,达到水波的扩散动画效果...过渡属性即可实现过渡效果,也就是水波扩散的效果,样式是通过类名var-ripple设置的: :root { --ripple-cubic-bezier: cubic-bezier(0.68, 0.01...因为水波元素为被点击元素的子元素,所以这些坐标都是相对于被点击元素的左上角坐标计算的: 从绿色的圆过渡成红色的圆,透明度、大小、位置的变化就是水波的扩散效果。...setTimeout(task, 60) : task() } 先回顾一下创建水波的各个阶段的耗时,当我们第一次点击元素时,等待60ms后会创建水波元素,然后再等待20ms后会开始进行水波的扩散效果,动画耗时
领取专属 10元无门槛券
手把手带您无忧上云