Android学习笔记-自定义仿支付宝ProgressBar动画

本文介绍了如何在Android中实现一个仿支付宝风格的ProgressBar动画。通过线程不断更新进度并利用弧形绘制,当收到结束信号时,结合路径坐标平滑变化来展示成功或失败的动画效果。提供了实际的代码示例和效果展示。
摘要由CSDN通过智能技术生成

最近开始学习自定义控件,看到支付宝支付的ProgressBar动画感觉不错,就学着也做一个这样的ProgressBar。

首先看效果图


原理:

 一个线程无限改变进度画弧形,当外部告知结束,通过判断结果呈现成功或者失败动画,通过path坐标缓慢变化就可以实现动画效果
代码如下:

<span style="font-weight: normal;">public class LoadingBar extends View {
    /**
     * 进度条画笔
     */
    private Paint mPaintProgress;
    /**
     * 进度条背景
     */
    private Paint mPaintLoaded;
    /**
     * 进度条所在矩形
     */
    private RectF mRectF;
    //中心点坐标
    private int mCenterX, mCenterY;
    /**
     * 加载handler
     */
    private Handler mHandlerLoading;
    /**
     * 加载线程
     */
    private Runnable mRunnableLoading;
    /**
     * 进度条颜色
     */
    private int mLoadingBarColor = 0xFF00BCD4;
    /**
     * 尾部进度
     */
    private int mProgressFoot = 0;
    /**
     * 头部进度
     */
    private int mProgressHead = 0;
    /**
     * 进度最大值
     */
    private int maxProgress = 100;
    /**
     * 是否正在加载
     */
    private boolean isLoading;
    /**
     * 头部速度大于尾部
     */
    private boolean isChanse;
    /**
     * 旋转睡眠时间
     */
    private static int PROGRESS_DELAY = 5;


    /**
     * 加载完成动画路径1
     */
    private Path mPath1;
    /**
     * 加载完成动画路径2
     */
    private Path mPath2;
    /**
     * 路径坐标
     */
    private float pathX, pathY;
    /**
     * 第二条路径坐标
     */
    private float pathX2, pathY2;

    /**
     * 控件宽高
     */
    private int minSide;
    /**
     * 内边框
     */
    private static float padding &#

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值