DialogFragment实现带数字倒计时和小圆点进度的圆形进度条

DialogFragment实现带数字倒计时和小圆点进度的圆形进度条

最近公司项目需要添加一个在网络不理想时,支付等待倒计时的弹框。开始想通过自定义view画出来,结果因为多个控件都有动画效果宣告失败。 最后利用继承Drawable再加上动画效果得以实现,效果如下:

实现步骤

没有交互的自定义view,可以实现一个drawable作为Imageview的背景

view的构成:

  • 外围圆环进度条
  • 圆环内倒计时数字
  • 圆环下方文字
  • 文字右边小圆点进度条

1. 自定义Drawable并初始化变量

public class CountDownView extends Drawable {
   
    private static final String TAG = "CountDownView";
    private final static int PROGRESS_FACTOR = -360;
    private Paint mPaint;
    private Paint textPaint;
    private RectF mArcRect;
    private float radius;

    //当前进度条进度
    private float progress;
    //进度条颜色
    private int ringColor;
    //进度条宽度
    private int ringWidth;
    //倒计时数字
    private int showNumber;
    //字符串颜色
    private int textColor;
    //数字颜色
    private int numColor;

    private String showText = "正在支付";

    private int MAX_DOTS_COUNT = 3;

    Paint numPaint;


    //小圆点数量
    private int circularCount;

    private Paint dotPaint;

    private static final float PERCENT_CIRCLER_TO_HEIGHT = 3 / 14f;//半径占父控件高度的比例

    public CountDownView(int ringWidth, int ringColor, int showNumber, int textColor, int numColor) {
        mPaint = new Paint();
        numPaint = new Paint();
        mArcRect = new RectF();

        this.ringWidth = ringWidth;
        this.ringColor = ringColor;
        
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值