自定义动画知识点:
绘制
Invalidate触发绘制(刷新)
ValueAnimator属性动画
canvas画布的一些操作:translate(重新映射画布上的 (0,0) 位置),alpha,scale(缩放当前绘图至更大或更小),rotate(旋转当前绘图)
绘制图前先理清图像的关系:比如圆的半径,圆心在屏幕的位置
1、创建动画的类继承view,并实现构造函数
2、定义动画图像的各种属性:半径、间距
要画图前首先要确定图像的位置,大小
可以画图像布局示意图:
大圆半径为3R,小圆半径为1R,两圆间距为0.5R。则可以得出:
布局图像最大长度minWidth:(2*3R+2*R+0.5R)= 8.5R
布局图像最大高度minHight:2*3R=6R
圆心位置:屏幕宽度为width,屏幕高度为hight
大圆心所在水平位置Cx:(width-minWidth)/ 2+3R
大圆心所在竖直位置Cy: hight/2
3、通过onSizeChaged获得对应的尺寸变化
4、onDraw方法进行对应的绘制
使用drawCircle需要:cx,cy,半径,画笔
因此需要自己配置画笔:
实现动画效果:
duration:动画的持续时间
repeatCount:动画的重复
每次动画都重新绘制:invalidate()
同理:在创建一个动画
同时执行动画:animator.playTogether()
启动动画和结束动画:
设置点击事件:
初始化点击事件:
并在main_Activity中调用init()即可实现动画: