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

Android 水波纹效果的探究

长按水波纹扩展效果 前言 水波纹效果Android5.0就已经出来了,基本的使用相信大家都知道了,这里多谈一些相对深层次的使用: 1、基本使用 2、水波纹效果与布局绘制之间的问题 3、长按水波纹扩散效果...4、Button点击的水波纹效果 基本使用 系统自带水波纹实现方式 有界水波纹 android:background="?...android:attr/selectableItemBackground" 无界水波纹 以控件宽高中最大的数值作为水波纹效果所在正方形的边界进行绘制 android:background="?...有两种方案可以达到想要的这种效果: 1、使用系统自带有界水波纹实现方式,因为系统本身的默认背景是透明色的。 android:background="?...参考资料 Ripple 水波纹效果 聊聊Android5.0中的水波纹效果 解决点击ripple水波纹无效的问题 UI之修改Button颜色保持默认点击效果

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

Android中Item实现点击水波纹效果

前言 水波纹效果大致上可以分为两类,一类是有界水波纹,而另一类是无界水波纹,较为广泛使用的是有界水波纹。...系统自带的水波纹实现 系统自带的方法非常方便,只需要给相应的空间设置背景,背景内容则为系统自带的 selectableItemBackground ,这样的话,水波纹就会在TextView所在的区域内进行绘制...<TextView android:background="?android:attr/selectableItemBackground" ... / 先上效果图 ?...ripple颜色的变化效果要比selector的效果更加柔和,以渐变的形式出现。...foreground设置 现在的点击水波纹效果只有在抬起手指的时候才能看到,不符合一些项目的需求。 其实在控件除了设置background,还可以设置foreground。

3.7K10

Android OpenGL ES 实现动态(水波纹)涟漪效果

动态(水波纹)涟漪效果 1 水波纹效果原理 最近一个做视频滤镜的朋友,让我给他做一个动态水波纹效果,具体就是:点击屏幕上的某一位置,然后波纹以该位置为中心向周围扩散。...模拟物理世界中的水波纹 最后观察出,物理世界中水波纹的特点如上图所示,从水面的正上方往下看,在凹面上方观察到的是缩小效果,而在凸面上方观察到的是放大效果,然后整个水波纹效果就是放大和缩小效果的交叉排列...因此,我们得出结论,水波纹(涟漪)效果实际上就是一组组相互交替、幅度向外部逐渐减小的缩小放大效果组合。 本文将水波纹模型简化成一组放大和缩小效果随时间逐步向外部偏移。...水波纹模型原理 发生形变区域的宽度为固定值 2*u_Boundary ,然后这个形变区域随着 u_Time 的变大逐步向外侧移动,最后就形成了动态的水波纹效果。...2 水波纹效果实现 基于上节的原理分析,实现水波纹效果的主要原理就是实现一定区域内的缩小和放大效果,我们以平滑函数的输出值作为纹理采样坐标的偏移程度。

2.2K20

Android实现水波纹外扩效果的实例代码

微信曾经推出了一个查找附近好友的功能,大致功能是这样的:屏幕上有一个按钮,长按按钮的时候,会有一圈圈水波纹的动画向外扩散,松手后,动画结束。...主要用到了下面的蓝色的图片,定义三个ImageView,background都设置为蓝色的图片,然后定义一个包括缩放和透明度变化的动画集,然后每隔一段时间,让3个ImageView依次启动这个动画集,看起来就像蓝色的圆圈像水波纹向外扩散一样...android:id="@+id/normal" android:layout_width="166dp" android:layout_height="166dp" android:...android.os.Handler; import android.os.Message; import android.view.MotionEvent; import android.view.View...clearWaveAnimation() { mWave1.clearAnimation(); mWave2.clearAnimation(); mWave3.clearAnimation(); } } 效果如下

76020

Android5.0中多种水波纹效果的实现代码

水波纹效果已经不是什么稀罕的东西了,用过5.0新控件的小伙伴都知道这个效果,可是如果使用一个TextView或者Button或者其它普通控件的话,你是否知道如何给它设置水波纹效果呢?...OK,我们今天就来看看这个水波纹效果的实现。水波纹效果的实现有系统自带属性可以实现,我们也可以自定义实现效果。...1.系统自带水波纹实现方式有界水波纹 水波纹效果大致上可以分为两种,一种是有界的,一种无界,我们先来看看有界水波纹效果效果: ?.../ 所谓的无界并非完全无界,而是以控件宽高中最大的数值作为水波纹效果所在正方形的边界进行绘制。OK,这两种都是系统自带的水波纹效果,如果我们想要自定义又该怎么做呢?...Ok,这就是5.0中水波纹效果的使用。

1.4K20

Android实现水波纹特效

最近需要做个类似于水波纹动画的效果,思考了一下不需要UI切个动态图,Android原生的技术利用动画或者自定义控件都可以实现,下面上个图类似于这样的效果 ?..." / </RelativeLayout 接下来中间的ImageView保持不变,通过操作另外两个ImageView达到效果 private void setAnim1() { AnimationSet...spreadRadius.remove(0); } //中间的圆 canvas.drawCircle(centerX, centerY, radius, centerPaint); //延迟更新,达到扩散视觉差效果...spread_max_radius="90" app:spread_radius="150" app:spread_spread_color="@color/colorAccent" / 以上两种方法就实现了水波纹效果...源码下载:Android实现水波纹特效 以上就是本文的全部内容,希望对大家的学习有所帮助。

1.1K10

Android 自定义球型水波纹带圆弧进度效果(实例代码)

需求 如下,实现一个圆形水波纹,带进度,两层水波纹需要渐变显示,且外围有一个圆弧进度。 ? 思路 外围圆弧进度:可以通过canvas.drawArc()实现。...水波纹的实现:直接使用贝塞尔曲线Path.quadTo()实现,通过拉伸水平直线绘制波浪效果。可以通过控制拉伸点(waveAmplitude)距离水平线的高度,达到波浪高度的控制。...园形的实现:绘制一个完整的圆形,然后通过Path.op()合并裁剪水波纹path。注意点就是Android6有个坑,使用该方法会有明显的抖动,为了解决该问题,我的做法是多画一层圆弧以掩盖此抖动。...num == 0) { sWaveShader } else { fWaveShader } canvas.drawPath(waveCirclePath, wavePaint) } //Fixme android6...自定义球型水波纹带圆弧进度效果(实例代码),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。

1.2K20
领券