自定义进度条(ProgressBar)

imooc视频地址

同样是自定义view的练习。

图片录制有问题,将就看吧。
效果图:
这里写图片描述

思路:
1. 继承ProgressBar
2. 实现其构造器
3. 初始化画笔 、提取xml属性
4. 测量
5. 绘图

传统进度条

继承ProgressBar
public class MyProgressBar1_Horizontal extends ProgressBar{}
实现其构造器
public MyProgressBar1_Horizontal(Context context) {
    this(context, null);
}

public MyProgressBar1_Horizontal(Context context, AttributeSet attrs) {
    this(context, attrs, 0);
}

public MyProgressBar1_Horizontal(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    init();
    parseStyle(context, attrs);
初始化画笔 、提取xml属性
//提取xml属性
private void parseStyle(Context context, AttributeSet attr) {
    TypedArray typedArray = context.obtainStyledAttributes(attr, R.styleable.MyProgressBar1_Horizontal);

    color_text = typedArray.getColor(R.styleable.MyProgressBar1_Horizontal_colortext, COLOR_TEXT);
    color_fore = typedArray.getColor(R.styleable.MyProgressBar1_Horizontal_colorfore, COLOR_FORE);
    color_background = typedArray.getColor(R.styleable.MyProgressBar1_Horizontal_colorbackground, COLOR_BACKGROUND);

    height_text = (int) typedArray.getDimension(R.styleable.MyProgressBar1_Horizontal_heighttext, HEIGHT_TEXT);
    height_fore = (int) typedArray.getDimension(R.styleable.MyProgressBar1_Horizontal_heightfore, HEIGHT_FORE);
    height_background = (int) typedArray.getDimension(R.styleable.MyProgressBar1_Horizontal_heightbacground, HEIGHT_BACKGROUND);

    gap = (int) typedArray.getDimension(R.styleable.MyProgressBar1_Horizontal_gap, GAP);

    typedArray.recycle();
}
//初始化画笔
protected void init() {
    paint = new Paint();
    paint.setStyle(Paint.S
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值