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

Android自定义view实现水波进度条控件

通过自定义view实现了一个水滴滴落到水波面,溅起水花并且水波流动上涨的进度条控件。...之前看到过好多水波流动的进度条,感觉欠缺些东西,就想到了水滴到水平面,溅起水花然后水流动上涨的进度条效果,于是自己动手写了出来。效果如下,视频录制有些卡顿,实际会流畅很多。 ?...app:progress="0" app:waterColor="#5488e3" / 2.WaveProgressView.setProgress()方法设置当前的进度 二.本文实现的逻辑 1,画水波流动...,通过三阶贝塞尔曲线画波形,通过不断的改变waveOffsetX和waveOffsetY的值实现流动的效果 /** * 生成水波流动 * * @param begin 水波形开始的位置...* @param waveLength 水波的长度 * @param waveOffsetX 水波水平的偏移 * @param waveOffsetY 水波垂直方向的偏移 *

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

自定义View实现横向的双水波进度条

[HorizontalWaveProgressView.GIF] 网上垂直的水波进度条很多,但横向的很少,将垂直的水波纹改为水平的还遇到了些麻烦,现在完善后发布出来,希望遇到的人少躺点坑。...思路分析 整体效果可分为三个,绘制圆角背景和圆角矩形,绘制第一条和第二条水波浪,根据自定义进度变化效果。...dp1); } canvas.drawRoundRect(rectBorder, dp27, dp27, borderPaint); 我们创建一个新的画布,然后在画布里画上圆角矩形背景和第一条和第二条水波浪...\ waveLength为水波长度,一个上弧加一个下弧为一个波长。...2)绘制第二条水波,第二条水波和第一条类似,只是起始点变了: /** * 绘制第二层波浪 */ private Path canvasSecondPath() { secondWavePath.reset

68820

自定义View实现横向的双水波进度条

HorizontalWaveProgressView.GIF 网上垂直的水波进度条很多,但横向的很少,将垂直的水波纹改为水平的还遇到了些麻烦,现在完善后发布出来,希望遇到的人少躺点坑。...思路分析 整体效果可分为三个,绘制圆角背景和圆角矩形,绘制第一条和第二条水波浪,根据自定义进度变化效果。...waveLength为水波长度,一个上弧加一个下弧为一个波长。...path的起始点为(0,0)可根据进度动态改变,然后循环画曲线,长度是有几个波浪就是多长,然后连接到view高度的位置,最后到(0,0),形成一个封闭的区域,这样就实现了一个填充的水波效果。...2)绘制第二条水波,第二条水波和第一条类似,只是起始点变了: /** * 绘制第二层波浪 */ private Path canvasSecondPath() { secondWavePath.reset

65520

js文件异步上传进度条

进度条的应用是为了显示的告诉用户文件上传了多少,对于小文件的上传基本上应用不到进度条。...进度条主要应用于大文件的上传,在于告诉用户上传情况,不至于让用户无状态等待,增加了用户的体验,如果没有进度条,在上传过程中,用户不知道是不是卡死了,这种体验就很差了,下面我们来说一下如何在异步上传时显示进度条...其实无论是原生js写xhr,还是jq的ajax,还是axios的异步都提供了一个获取上传进度的API,首先我们来看一下原生js如何获取上传进度。...原生js获取上传进度 var fd = new FormData(); fd.append("file", document.getElementById('testFile').files[0]);...; } }); axios获取上传进度 在axios中提供了一个参数onUploadProgress,有了这个参数就可以很方便的获取上传进度了,其方法实现还是和原生js的一样,这个参数其实就是注册一个监听事件

9.9K20

水波模拟算法

一、理论依据 水波的物理学模型便是理论依据。水波有如下特性: 扩散:水波总是从被扰动的中心向外扩散。在水波扩散过程中每个点都在得到能量后以自己为中心震动,并向四周传播能量。...衰减:水波在传播过程中能量会逐渐的衰减,因为水的震荡是有阻尼的。 折射:由于水波表面各处有不同程度的倾斜,由于折射,将会看到水底景物的不同程度的偏移,看起来是变形的。...反射:由于水波表面的凹凸不平,比起平静时期的水面,水面上各点反光程度将会不同程度的受到影响,从而改变了自己的亮度,颜色。 水波还有衍射等特性。但是考虑问题的核心在于能量传递或者能量扩散。...因为背景图像按照波能偏移显示,得到水波效果。 在考虑了反射的情况下(无论是否考虑了折射),不论是否使用了背景图像,都会有水波效果,因为水面各点的亮度按照波能进行加强和减弱。...当然,两者考虑的情况下水波最为逼真。 这就相当于对一池清水,没有反射光的时候就算有扰动,也看不到波形;而如果有水底背景,只要有折射存在,也能感到有水波存在。形成水波最主要的还是反射因素。

1.2K90

图像水波特效

:/Users/xpp/Desktop/Lena.png') rows,cols=img.shape[:2] dst=np.zeros((rows,cols,3),dtype="uint8") #定义水波特效参数...wavelength=20 amplitude=30 phase=math.pi/4 #获取中心点 centreX=0.5 centreY=0.5 radius=min(rows,cols)/2 #设置水波覆盖面积...icentreX=cols*centreX icentreY=rows*centreY #图像水波特效 for i in range(rows): for j in range(cols):...cv2.imshow('original',img) cv2.imshow('result',dst) cv2.waitKey() cv2.destroyAllWindows() 算法:图像水波特效是围绕水波中心点进行波纹涟漪传递...如图,红轴表示水面,蓝色椭圆表示水波。 对于某个点x,其运动轨迹上的每个点都可以分解为与视线平行和垂直的2个方向上的位移,计算出垂直视线的位移y,即计算出水波导致像素点偏移位移。

39630

水波扩散效果(shader)

水波扩散是一个比较好看的交互效果,特别是在某些以水为故事发生场景的游戏中,扩散的水波会让场景更加栩栩如生 ?...demo 实现思路 如果水波静止,我们看到的其实是像素点围绕着某个中心点的拉伸效果,我们只需让每个像素点叠加上它和中心点的向量差,就能够呈现出画面上的所有像素围绕中心点的拉伸感。...周期性往外涌 这种呼吸灯式的涌动其实和我们的最终效果有很大区别,因为它永远在循环涌动,但是我们的水波是从中心扩散出去之后,中间部分就不再动了的,怎么让中间的像素不再多次涌动呢?...如果把一圈水波比作圆,那水波的扩散行为其实就是这个圆的半径在不断的增大,圆外面的波纹有效,圆里面的波纹静止。...未调优效果 接下来的就是参数的调试,主要是三角函数的采样那里,我们希望水波能够产生多个波动,所以我们需要乘上一定的倍数,让函数的作用范围足够大,才能有足够多的波峰谷底。

2.2K20

【Flutter】仿 Element 样式 Progress 进度条

「type」:进度条样式,支持4种,分别为 「line」(直线)、「circle」(圆环)、「dashboard」(仪表盘)、「liquid」(水波纹)。...「true」:表示跟随进度条移动。 「false」:type=line 而且direction=horizontal,文字显示在进度条右侧,其他情况文字显示在进度条中间。...进度条支持4种形状,分别为:「line」(直线)、「circle」(圆环)、「dashboard」(仪表盘)、「liquid」(水波纹)。...EProgress( progress: 50, strokeWidth: 20, ) 「strokeWidth」 在 「type=liquid」(水波纹)样式时不起作用。...「true」:表示跟随进度条移动。 「false」:type=line 而且direction=horizontal,文字显示在进度条右侧,其他情况文字显示在进度条中间。

1.9K20

Android开发笔记(一百三十一)水波图形与水波动画

水波图形RippleDrawable RippleDrawable是Android在5.0之后新增的图形类,它的作用是在点击时展示水波动画,从而提示用户在这里按压了屏幕。...具体的水波样式主要有三种,说明如下: 1、没有边界限制的水波,这意味着允许水波动画充满整个视图,xml定义如下: <ripple xmlns:android="http://schemas.android.com...<em>水波</em>动画RippleView RippleDrawable只支持Android5.0以后的系统,如果想在4.*系统上也能展示<em>水波</em>动画效果,就得自己编写<em>水波</em>动画的控件了。...<em>水波</em>动画的实现思路不难,主要是以触摸点为圆心,间隔很短时间不停地向外画圆圈,从而产生<em>水波</em>荡漾的动画效果。...; 4、随着<em>水波</em>扩散与消失,<em>水波</em>图案的颜色应当逐渐变淡,这样才符合现实生活中的情况; 5、对于按钮等控件,点击操作应延迟若干时长(如0.5秒)再处理具体事务,以便留出充裕时间播放<em>水波</em>动画; 下面是自定义<em>水波</em>动画的截图

97840
领券