android实现加载过程动画,Android 属性动画+自定义view实现加载动画

本文介绍了如何在Android中利用属性动画和自定义View来创建加载过程动画。首先,通过画6个小圆并让它们旋转起来,接着进行小圆的聚合,最后实现扩散效果。通过属性动画控制小圆的旋转角度和半径变化,结合勾股定理计算旋转坐标,实现旋转和聚合动画。同时,使用扩散画笔和 Stroke 宽度变化完成扩散效果。
摘要由CSDN通过智能技术生成

如图

301033e59c8b

splash.gif

思路分析

过程拆分

1.画6个小圆圈

2.小圆圈转动起来

3.小圆圈聚合

4.开始扩散

首先确定6个圆的坐标,画出小圆,圆要转动,就是要同步改变每个小圆的坐标,小圆的运动轨迹是个圆。所以使用属性动画,属性动画的变化区别设置为0-2π,然后使用勾股定律求出旋转的圆心坐标,重绘。就能实现旋转效果了。然后只要改变这个大圆的半径就能实现聚合效果。最后扩散效果这个思路就很sao,就是画一个圆,画笔的style设置成STROKE,只要改变Stroke的宽度就行了。是不是很简单。

思路都有了开始撸码

public class SplashView extends View {

//小圆半径

private int smallCircleRadius = 20;

//大圆半径

private int bigCircleRadius = 100;

//小圆画笔

private Paint mPaintSmallCircle;

//小圆颜色

private int[] colorsCircle;

//小圆之间的角度

private float angle;

//属性动画旋转角度

private float scaleAngle;

//属性动画变化半径

private int scaleRadiu;

private SlpashState drawState;

//屏幕对角线的一半

private float expandRadius;

//扩散画笔

private Paint mPaintExpand;

private float mPaintExpandMove;

public SplashView(Context context) {

this(context, null);

}

public SplashView(Context context, @Nullable AttributeSet attrs) {

super(context, attrs);

init(context);

}

private void init(Context context) {

colorsCircle =

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值