android 按钮添加动画,Android 自定义View画出按钮加载动画~

本文分享如何利用Canvas和ValueAnimation打造独特的登录动画,通过半圆、矩形动态组合和旋转实现加载过程的视觉吸引力。作者通过代码实例展示了如何从半圆移动过渡到全圆加载效果,适合提升用户体验。

声明:原创作品转载请注明出处http://www.jianshu.com/p/a0ffbc04c089

看了太多别人的文章,我觉得我也应该写点什么了~一是巩固自己的知识,二是共同学习,敢说我做的不好我就骂你非常欢迎指正不足之处大家一起进步o(*≧▽≦*)o,因为酷爱特效所以第一篇就写下特效吧。

本篇主要讲实现思路,效果图很挫因为写出来之后没怎么优化过。

先说一下实际解决的问题,比如说登录,站在用户的角度来看点击登录按钮之后千篇一律的一个loading在转啊转啊转啊的,倒不是说体验差但如果来点不一样的会不会让用户眼前一亮呢?比如说这样(图有点大~转成gif真的是费劲~ ~gif很卡顿但真机很顺畅~看个意思吧。。。)

a0ffbc04c089?from=timeline

大概效果就是这样了~接下来说下我的实现思路以及步骤(直说下实现思路以及代码片段稍后我会贴出源码):

1,左边画一个半圆中间画一个矩形右边再来一个半圆(半圆是用画弧度的方法canvas.drawArc画的)

下图 ↓ 里面的一些变量可以先不看。

a0ffbc04c089?from=timeline

a0ffbc04c089?from=timeline

2,点击按钮之后使用ValueAnimation将commonValue动态赋值(这个值的范围是0到(width/height)/2,除以二的原因是矩形两边要一起移动)大概就是下图 commonValue的改变会将两个半圆以及矩形的绘制区域改变从而达到移动的效果。

a0ffbc04c089?from=timeline

3,当中间的矩形通过动画重绘消失后,界面上就剩下两个合在一起的半圆了,这时再画个弧通过ValueAnimator动态的从0-360取值然后赋予这个弧度,同时转动画布达到这个加载的效果

a0ffbc04c089?from=timeline

主要是canvas.rotate()这行代码起了很大作用,求知欲强的同学可以去掉这句试试看(瞬间就low炸了)

4,假如场景是登录,那么网络加载完成之后调用setState方法设置成功或者失败~大功告成~

ps:至于为什么继承TextView。。。因为继承View文字得自己画啊,TextView方便多了你想继承Button也行。

虽然篇幅短但实际上代码写了快接近400行了,源码简单易懂,全是绘图常用的api,里面主要还是动画逻辑可能会有点复杂,多看看就明白了~加油!

源码地址  调用startOk方法开始动画 少了两张图,这个随便找两张吧 最好是尺寸小一点的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值