粘性小球LoadingView
来源:互联网 发布:德梅因号重巡洋舰数据 编辑:程序博客网 时间:2024/04/29 01:35
1.使用贝塞尔曲线绘制圆
原图如下:
实现的效果图如下:
gif做的不好,实际效果可以真机运行下。
2016年8月28日更新
更新演示gif图
动态改变大圆合并小圆时候,绘制贝塞尔曲线的最小距离.让小圆进入大圆,效果更加自然一点.
if (distance < (mMinPathDistance - mCenterDistance / 8)){ mIsPath = true; mPathDistance = distance;}没事做,修改了下小球的颜色...
大概讲下我的实现思路,从效果看的话,主要要实现三个效果:
小圆的移动绘制
大圆和小圆之间的粘性效果
大圆有个抖动效果和大小变化
首先看第一点,小圆绘制比较简单,就是调用canvas.drawCircle()方法,计算好各个小圆之间的位置就可以.
对于第二点,是这个控件的难点,用过Path的应该知道,android上实现贝塞尔曲线就是用Path来实现的,一开始,我的做法是,用canvas画个大圆,然后用两条二阶贝赛尔曲线,去绘制大圆和小圆之间的粘性效果,QQ的未读消息小红点的拖拽消失,就是用这个思路实现的.但可能是控制点计算有问题之类的,导致绘制出来的效果不太理想,比较生硬.后来,在网上寻找资料时候,刚好看到开头说的那篇博文,文章也是讲的,绘制粘性小球,但它绘制圆的方法,是通过绘制四条三阶贝塞尔曲线去实现的,这也给了我提示,用四条三阶贝塞尔曲线去绘制大圆,能更好的控制圆的展示效果.
最后一点也比较简单,改变大圆的半径值和大圆各个点的位移值,就可以实现,但我自己感觉有点粗糙,等以后看看有什么更好的方法.
总而言之,具体实现可以直接去github看具体代码.
原文链接:http://www.jianshu.com/p/4a022f9bb121
TODO
大圆的抖动效果
贝塞尔曲线不够精细
文/奋斗的Leo(简书作者)
0 0
- 粘性小球LoadingView
- Android粘性菊花—-粘性LoadingView你所知道的一切
- Android水滴,小球粘性控件生成.
- Android具有粘性的小球,跌落反弹形成文字的动画效果
- Android具有粘性的小球,跌落反弹形成文字的动画效果
- 小球
- 小球
- 小球
- 小球
- iOS自定义LoadingView
- android自定义钟摆loadingView
- 自定义LoadingView大全
- 自定义LoadingView大全
- 粘性控件
- 粘性控件
- 请求数据loadingView的问题
- 技术周报 Gif图片 LoadingView
- Android网络加载通用LoadingView
- 使用Sencha Touch开发移动Web应用平台
- 设计模式第二天_观察者模式_java内置实现
- 快速的把ppt转换成word用什么转换
- 10个实用的PHP正则表达式
- PAT_乙级 1003 我要通过!
- 粘性小球LoadingView
- jvm实用参数--并发(CMS)收集器
- LeetCode No.165 Compare Version Numbers
- Android 面试常见问题
- Spring Mvc那点事---(36)rest服务框架搭建
- 按钮hover active效果
- linux网络管理
- [2016/11/1][tcpdump]本机抓包命令
- 使用jdk的xjc命令由schema文件生成相应的实体类