您的位置:首页 > 移动开发 > Android开发

MD风格的progressbar实现,可以在5.1以下使用

2017-01-07 10:25 387 查看
自从安卓5.0出来后,一堆的md风格就出来了,让人觉得眼前一亮,我靠!怎么这么好看!可惜了,我的系统还是4.4的,这些东西都用不了啊!难受...
然后想一下,既然用不了,那我就仿照着写一个可以用的,好啦,下面就是我的尝试了...没有官方的那么好,不过大体也算是实现了。
关键代码很少,直接上。


public class ProgressView extends View {

private Paint mPaint;
private float start;
private float sweep;
private RectF rectF;

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

public ProgressView(Context context, AttributeSet attrs) {
super(context, attrs);
mPaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.DITHER_FLAG);
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setColor(Color.RED);
mPaint.setStrokeWidth(10);
rectF = new RectF(110, 110, 290, 290);
}

boolean flag = true;

@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
start +=4;
if (flag){
sweep +=5f;
}else {
sweep-=3;
start+=2;
}
if (start>=360){
start-=360;
}
if (sweep>=270){
flag=false;
}
if (!flag&&sweep<=45){
flag=true;
}

canvas.save();
canvas.drawArc(rectF, start, sweep, false, mPaint);
canvas.restore();
invalidate();
}
}


来看下具体效果







原谅我不会搞gif,第一次写,仅供交流学习,能力有限,如果有什么问题,欢迎讨论。

最后附一demo地址:

Material ProgressBar Demo
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 自定义View
相关文章推荐