同样是自定义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