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

水波扩散效果(shader)

水波扩散是一个比较好看的交互效果,特别是在某些以水为故事发生场景的游戏中,扩散水波会让场景更加栩栩如生 ?...demo 实现思路 如果水波静止,我们看到的其实是像素点围绕着某个中心点的拉伸效果,我们只需让每个像素点叠加上它和中心点的向量差,就能够呈现出画面上的所有像素围绕中心点的拉伸感。...掏空式往外涌 但是水波往外扩散是呼吸灯式的一波波往外涌,而且不是这种无尽式的一直把东西往外掏的感觉,所以我们要给cc_time.x加上一个周期性的变化,让它能表现出这种周期性的往外扩散的感觉。...周期性往外涌 这种呼吸灯式的涌动其实和我们的最终效果有很大区别,因为它永远在循环涌动,但是我们的水波是从中心扩散出去之后,中间部分就不再动了的,怎么让中间的像素不再多次涌动呢?...如果把一圈水波比作圆,那水波扩散行为其实就是这个圆的半径在不断的增大,圆外面的波纹有效,圆里面的波纹静止。

2.2K20

Android 5.0 实现水波扩散效果

本文实例为大家分享了Android 5.0 实现水波扩散效果的具体代码,供大家参考,具体内容如下 该效果是通过自定义界面来实现的 1、首先自定义属性,attrs.xml代码如下: <?...2、自定义RippleView类继承RelativeLayout布局,也可以由需求所定继承于其它类,实现水波扩散效果主要的有两点:水波扩散的绘制和动画 1)水波的绘制其实就是绘制一个圆形 canvas.drawCircle...(mDownX, mDownY, mRadius, mRipplePaint); 2)动画效果就是该圆形的绘制从小到大的过程,而该圆形到最大时的半径长度就是当前所在布局的对角线长度: @Override...super.onSizeChanged(w, h, oldw, oldh); // 获取最大半径 mMaxRadius = (float) Math.sqrt(w * w + h * h); } 动画效果用属性动画...private float mMaskAlpha;// 遮掩透明度 private float mRippleAlpha;// 水波透明度 private int mRippleTime;// 水波动画时间

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

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

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

3.4K40

Android 水波效果的探究

长按水波纹扩展效果 前言 水波效果从Android5.0就已经出来了,基本的使用相信大家都知道了,这里多谈一些相对深层次的使用: 1、基本使用 2、水波效果与布局绘制之间的问题 3、长按水波扩散效果...Mask的内容并不会被绘制到屏幕上,它的作用是限定Ripple效果的绘制区域。 最后可以得到我们想要的效果: ? image.png 长按水波扩散效果 ?...长按水波纹扩展效果 在使用小红书时,我们可以看到关于“笔记”的item长按会展示扩散效果,其实原理也很简单。...无边界的水波纹可以达到长按扩散效果,只是它会超出边界,那我们就在对应的父布局加一层有边界的水波纹背景即可。...参考资料 Ripple 水波效果 聊聊Android5.0中的水波效果 解决点击ripple水波纹无效的问题 UI之修改Button颜色保持默认点击效果

2.3K20

Android:RippleDrawable 水波纹涟漪效果

二、RippleDrawable基本概念介绍 (1)、RippleDrawable RippleDrawable可以实现上面效果图中的水波效果,它是在API 21 中添加的,所以,低于21的版本中不可使用...没有指定mask ,并且也没有指定radius 时,会以控件宽高中的较大值为直径绘制水波纹,这样就必然会超出控件的范围,所以,这种效果也叫做 无界水波效果。...指定mask 后 ,id 为 mask 的item 中指定的drawable 可以限定水波纹的范围。 三、代码示例: (1)、xml 中定义 ripple 下列代码依次对应效果图中的前6个。...--无界水波效果,所谓无界,实际是以空间宽度或高度中的大值作为直径绘制一个园--> <TextView android:layout_width...--有界水波效果

2.5K20

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

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

77720
领券