最近需要做个类似于水波纹动画的效果,思考了一下不需要UI切个动态图,Android原生的技术利用动画或者自定义控件都可以实现,下面上个图类似于这样的效果 ?...下面请看第一种动画实现,这种方式较为简单些,就是利用3个ImageView不断地做缩放和渐变的动画。...as.addAnimation(scaleAnimation); as.addAnimation(alphaAnimation); iv2.startAnimation(as); } 接下来就是第二种自定义动画实现...spread_max_radius="90" app:spread_radius="150" app:spread_spread_color="@color/colorAccent" / 以上两种方法就实现了水波纹的效果...源码下载:Android实现水波纹特效 以上就是本文的全部内容,希望对大家的学习有所帮助。
有很多app使用过水波纹的这样的效果,看着很酷酷的样子,所以自己就撸码写了一个。 ?...实现思路: 利用贝塞尔曲线绘制圆弧(也就是水波的波纹) 通过动画改变绘制的起始点使水波纹平移 首先,定义我们需要的自定义属性。 <?...-- 水波纹的长度-- <attr name="waveLength" format="float" </attr <!...-- 水波纹的高度-- <attr name="waveHeight" format="float" </attr <!...-- 水波纹的速度-- <attr name="waveSpeed" format="float" </attr <!
本文为大家分享了Android实现水波纹效果展示的具体代码,供大家参考,具体内容如下 一、效果 ?...二、实现原理 自定义view,使用Path和贝塞尔曲线绘制,然后不断刷新,并且改变X、Y的值 主要知识点rQuadTo的使用 三、实现 WaveView.java public class WaveView
本文实例为大家分享了RecyclerView实现水波纹点击效果的具体代码,供大家参考,具体内容如下 效果图 ?...<item android:drawable="@color/write"/ </ripple drawable/recycler_item_selector.xml (v21版本以下的没有水波纹效果...LinearLayoutManager.VERTICAL,false)); mRecyclerView.setAdapter(myAdapter); } } github :RecyclerView水波纹效果
GestureDetector 使用点击无水波纹出现,InkWell可以实现水波纹效果。...,如果设置的话尽量设置Material下面的color来实现背景色 child: new Container( width: 300.0, height: 50.0, //设置child...new Center( child: new Material( //INK可以实现装饰容器,实现矩形 设置背景色 child: new Ink( //设置背景 默认矩形 color...new Center( child: new Material( //INK可以实现装饰容器 child: new Ink( //用ink圆角矩形 // color: Colors.red,..., //水波纹的半径 radius: 300.0, //水波纹的颜色 splashColor: Colors.black, //true表示要剪裁水波纹响应的界面 false不剪裁
本文实例为大家分享了Android实现水波纹扩散效果的具体代码,供大家参考,具体内容如下 先上图 ? 囧!没有图片所以就拿了小安代替了。 先看一下如何使用这个View。...rd" app:ripple_img_res="@drawable/rd" </jianpan.com.mybutton.view.RippleDiffuse 是的,没有别的代码了,就这么简单 实现思路...position); wave.startAnimation(mAnimas.get(position)); super.handleMessage(msg); } }; 参考地址:Android实现水波纹外扩效果
给大家分享一个用CSS 3.0实现波纹动画特效,效果如下: 以下是代码实现,欢迎大家复制粘贴和收藏。 CSS 3.0实现波纹动画特效
介绍:水波纹散开效果的控件在 App 里面还是比较常见的,例如 网易云音乐歌曲识别,附近搜索场景。 看下实现的效果: ?...实现思路: 先将最大圆半径与最小圆半径间距分成几等份,从内到外,Paint 透明度依次递减,绘制出同心圆,然后不断的改变这些同心圆的半径大小,延迟一定时间重绘,便达到了想外散开的动画效果了。
代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> ...
本文实例为大家分享了Android自定义控件实现水波纹的具体代码,供大家参考,具体内容如下 示例代码: MainActivity.java package com.example.mhy.shuibowen...android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import java.util.ArrayList; /** * 水波纹效果
前言 水波纹效果大致上可以分为两类,一类是有界水波纹,而另一类是无界水波纹,较为广泛使用的是有界水波纹。...系统自带的水波纹实现 系统自带的方法非常方便,只需要给相应的空间设置背景,背景内容则为系统自带的 selectableItemBackground ,这样的话,水波纹就会在TextView所在的区域内进行绘制...foreground设置 现在的点击水波纹效果只有在抬起手指的时候才能看到,不符合一些项目的需求。 其实在控件除了设置background,还可以设置foreground。
本文讲述了Android实现水波纹扩散效果的实例代码。分享给大家供大家参考,具体如下: 项目地址下载 1.效果图: ?...*/ private ImageView [] imgs=new ImageView[SIZE]; /**背景图片*/ private ImageView img_bg; /**水波纹和背景图片的大小*...imageViewHeigth)); //添加一个规则 params.addRule(RelativeLayout.CENTER_IN_PARENT,RelativeLayout.TRUE); /**添加水波纹图片...0.5f); } //============================对外暴露的public方法========================================= /** * 开始水波纹动画...show_spacing_time); mHandler.sendEmptyMessageDelayed(MSG_WAVE3_ANIMATION, show_spacing_time * 2); } /** * 停止水波纹动画
动态(水波纹)涟漪效果 1 水波纹效果原理 最近一个做视频滤镜的朋友,让我给他做一个动态水波纹效果,具体就是:点击屏幕上的某一位置,然后波纹以该位置为中心向周围扩散。...模拟物理世界中的水波纹 最后观察出,物理世界中水波纹的特点如上图所示,从水面的正上方往下看,在凹面上方观察到的是缩小效果,而在凸面上方观察到的是放大效果,然后整个水波纹效果就是放大和缩小效果的交叉排列...因此,我们得出结论,水波纹(涟漪)效果实际上就是一组组相互交替、幅度向外部逐渐减小的缩小放大效果组合。 本文将水波纹模型简化成一组放大和缩小效果随时间逐步向外部偏移。...水波纹效果原理如下图所示,我们以点击位置为中心,发生形变的区域是内圆和外圆之间的区域,以归一化时间变量 u_Time 大小为半径构建的圆(蓝色虚线)为边界,设定内侧是实现缩小效果的区域,外侧为实现放大效果的区域...2 水波纹效果实现 基于上节的原理分析,实现水波纹效果的主要原理就是实现一定区域内的缩小和放大效果,我们以平滑函数的输出值作为纹理采样坐标的偏移程度。
微信曾经推出了一个查找附近好友的功能,大致功能是这样的:屏幕上有一个按钮,长按按钮的时候,会有一圈圈水波纹的动画向外扩散,松手后,动画结束。...现在简单来实现这样的一个动画功能: 思路: 主要用到了下面的蓝色的图片,定义三个ImageView,background都设置为蓝色的图片,然后定义一个包括缩放和透明度变化的动画集,然后每隔一段时间,...让3个ImageView依次启动这个动画集,看起来就像蓝色的圆圈像水波纹向外扩散一样。...相关实现逻辑如下: activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android
代码实现 这里实现主要用到的知识有 自定义view、PorterDuffXfermode和二阶贝塞尔曲线,不太清楚的可以在我博客找找,都有的。 ...@param mWaveSpeed */ public void setmWaveSpeed(int mWaveSpeed){ this.mWaveSpeed = mWaveSpeed; } 实现还是比较简单的
OK,我们今天就来看看这个水波纹效果的实现。水波纹效果的实现有系统自带属性可以实现,我们也可以自定义实现效果。...1.系统自带水波纹实现方式有界水波纹 水波纹效果大致上可以分为两种,一种是有界的,一种无界,我们先来看看有界水波纹效果: 效果: ?...这种是有界水波纹,就是水波纹会在TextView所在区域进行绘制。 无界水波纹 ?...2.自定义水波纹实现方式无界水波纹 自定义这个效果其实也很简单,需要在drawable文件夹中定义ripple节点,再设置上颜色就可以了: <?...OK,大家看到这是无界水波纹。OK,如果想定义有界水波纹又该如何呢? 有界水波纹 <?xml version="1.0" encoding="utf-8"?
box-shadow: 0 14px 28px rgba(7, 93, 104, 0), 0 10px 10px rgba(31, 3, 68, 0.4); } } 水波纹特效
RippleButton.gif 基本思路是自定义控件继承至Button,记录手势抬起坐标,利用RadialGradient实现效果 private Paint ripplePaint = new...postInvalidate(); break; } return super.onTouchEvent(event); } onDraw方法中实现效果
[HorizontalWaveProgressView.GIF] 网上垂直的水波纹进度条很多,但横向的很少,将垂直的水波纹改为水平的还遇到了些麻烦,现在完善后发布出来,希望遇到的人少躺点坑。...功能实现 1.绘制圆角背景和圆角矩形边框 圆角矩形边框: private RectF rectBorder; if (rectBorder == null) { rectBorder = new...1)实现第一条水波 /** * 绘制波浪线 */ private Path canvasWavePath() { //要先清掉路线 wavePath.reset(); //...\ path的起始点为(0,0)可根据进度动态改变,然后循环画曲线,长度是有几个波浪就是多长,然后连接到view高度的位置,最后到(0,0),形成一个封闭的区域,这样就实现了一个填充的水波效果。...secondWavePath.lineTo(0, waveActualSizeHeight); secondWavePath.close(); return secondWavePath; } 3.设置动画使进度和水波纹变化
长按水波纹扩展效果 前言 水波纹效果从Android5.0就已经出来了,基本的使用相信大家都知道了,这里多谈一些相对深层次的使用: 1、基本使用 2、水波纹效果与布局绘制之间的问题 3、长按水波纹扩散效果...4、Button点击的水波纹效果 基本使用 系统自带水波纹实现方式 有界水波纹 android:background="?...android:attr/selectableItemBackgroundBorderless" 自定义水波纹实现方式 无界水波纹 <?...自定义有界水波纹 对比后,发现绿色的文字部分经过了二重绘制,因为布局的白色背景和文字自身颜色的原因。如果布局背景能去掉还能实现水波纹的效果就好了,这样就只有文字一层的颜色。...有两种方案可以达到想要的这种效果: 1、使用系统自带有界水波纹实现方式,因为系统本身的默认背景是透明色的。 android:background="?
领取专属 10元无门槛券
手把手带您无忧上云