Android开发中如何自定义加载动画


这篇文章主要为大家展示了“Android开发中如何自定义加载动画”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Android开发中如何自定义加载动画”这篇文章吧。1.效果展示如下图,我截了三个瞬间,但其实这是一个连续的动画,就是这个大圆不停地吞下小圆。2.这个动画可以拆分为两部分,首先是大圆张嘴闭嘴的动画,相当于画一个圆弧,规定一下它的角度就好。小圆就是一个从右向左移动的动画。然后不停地刷新界面,让动画的持续时间为永恒,这样就会有一个持续的动态效果。1.在制作动画之前,我们要先建一个模型,来确定一下大圆和小圆的比例。这个比例是自己设置的,可以自行修改。下图是画免费云主机域名布的宽度大于高度的情况。R = minHeight /6Cx = (width – minwidth)/2 + 3RCy = height/2还有一种是画布宽度小于高度的情况,如下图所示:这个时候6R+0.5R+2R = minwidth。 R = minwidth /8.5Cx = 3RCy =height/22.确定了大圆圆心坐标之后,小圆的圆心坐标也可以知道了。1.先创建一个类继承自view,并实现其对应的构造方法2.定义一下大圆(嘴)的半径(3R),小圆的半径(R)以及两圆之间的间距(0.5R),还有嘴的圆心坐标3. 在onSizeChanged方法里面计算尺寸。4.提供一个画笔5.在onDraw方法里面画一个圆6.在xml文件里面添加这个自定义类7.如果用上面的方法来画圆,会出现一些bug,如下图所示这是因为,当宽度大于高度时,R= height/6。如果R过小,那么圆心的坐标就会偏左,那么就会有一部份圆出界。为了避免这种情况发生,无论什么情况下,都把R设置为最小的那个/8.5。8.重新计算一下半径1.张嘴相当于画了一个弧,画弧需要确定一个矩形区域——即大圆所在的矩形。还需要设置一个角度,也就是弧度。绘制出来如下图所示。image.png2.这是一个静态的过程,想让它变成动态的话,只需要一直修改嘴张开的角度即可。所以我们定义一个动画因子,作为弧度3.然后在onDraw方法里面,把死数据改为我们动画因子即可。4.添加两个按钮,来显示动画和暂停动画。当点击按钮时,实现对应的点击事件。5.所以在MouseLoadingView类里面提供几个方法给外部调用6.createAnimator()是创建动画的函数。从0-45-0的是动画因子的变化,监听一下动画执行的过程,不断刷新动画因子的数值,然后刷新界面。7.因为动画效果有很多,所以我们要用一个数组来保存所有的动画8.添加几个启动和结束动画的方法1.创建一个小球,然后让它从右边向左边移动即可。小球圆心的x坐标在不断改变,y坐标与大圆一样。所以我们要给小球设置一个移动的动画因子。2.然后在onDraw()方法里面绘制小球3.之后,在createAnimator()方法里面添加小球的动画。让小球移动的距离从4.5R到0,也就是直到小圆与大圆重合。4.在MainActivity里面添加按钮的点击事件差不多就这些内容。自定义加载动画的难点,主要在于找到动画因子。以上是“Android开发中如何自定义加载动画”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注百云主机行业资讯频道!

相关推荐: iOS中多线程的示例分析

这篇文章给大家分享的是有关iOS免费云主机域名中多线程的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、NSThread–优点:NSThread 比其他两个轻量级,使用简单–缺点:需要自己管理线程的生命周期、线程同步、加锁…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 10/07 21:02
下一篇 10/07 21:02

相关推荐