Android自定义progressbar(雷达扫描样式进度条)

本文介绍如何在Android中创建一个雷达扫描样式的自定义ProgressBar。详细讲解了progressbar的属性,如外圆边框颜色、内圆渐变色等,并提供了相应的代码示例和使用方法。
摘要由CSDN通过智能技术生成

Android自定义progressbar(雷达扫描样式进度条)

项目中需要用到类似雷达扫描的进度条,因为时间有余,所以打算自己做一个。查阅了网上很多教程和资料,最终的运行结果如下图
在这里插入图片描述

progressbar属性讲解

outerRoundBorderColor_init 表示外圆边框默认颜色,动图里表示浅灰色
outerRoundBorderColor_cover 表示外圆边框覆盖颜色,动图里表示浅蓝色
innerRoundBorderColor 表示内圆边框颜色,动图里表示浅蓝色
innerRoundColor 表示内圆渐变颜色,动图里表示天蓝色
roundBorderWidth 表示外圆边框宽度
progressTextSize 表示进度条字体大小
progressTextColor 表示进度条字体颜色

代码如下

代码可以直接复制使用

public class MyProgressBar extends View {
   
    private int outerRoundBorderColor_init =Color.GRAY;
    private int outerRoundBorderColor_cover = Color.BLUE;
    private int innerRoundBorderColor = Color.BLUE;
    private int innerRoundColor=Color.CYAN;
    // 10px
    private int mRoundWidth = 10;
    private float mProgressTextSize = 15;

    private int mProgressTextColor = Color.BLUE;

    private Paint mPaint, mTextPaint;
    private int mMax = 100;
    private int mProgress = 0;

    SweepGradient mSweepGradient;

    private Matrix matrix;



     //旋转的角度

    private int degree = 0;

    public MyProgressBar(Context context) {
   
        this(context, null);
    }

    public MyProgressBar(Context context, AttributeSet attrs) {
   
        this(context, attrs, 0);
    }
    public MyProgressBar(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
   
        super(context, attrs, defStyleAttr);
        // 获取自定义属性
        TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.MyProgressBar);
        outerRoundBorderColor_init = array.getColor(R.styleable.MyProgressBar_outerRoundBorderColor_init, outerRoundBorderColor_init);
        outerRoundBorderColor_cover = array.getColor(R.styleable.MyProgressBar_outerRoundBorderColor_cover, outerRoundBorderColor_cover);
        innerRoundBorderColor = array.getColor(R.styleable.MyProgressBar_innerRoundBorderColor, innerRoundBorderColor);
        innerRoundColor = array.getColor(R.styleable.MyProgressBar_innerRoundColor, innerRoundColor);
        mRoundWidth = (int) array.getDimension(R.styleable.MyProgressBar_roundBorderWidth, dip2px(10));
        mProgressTextSize = array.getDimensionPixelSize(<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值