您的位置:首页 > 其它

自定义进度条

2017-01-09 09:46 295 查看
package text.bwie.asus.prossview;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.RectF;
import android.os.Handler;
import android.os.Message;
import android.util.AttributeSet;
import android.view.View;

/**
* Created by asus on 2017/1/8.
*/
public class ProssgressView extends View {
private  int progess=0;
Handler h=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if(progess<100){
progess++;
invalidate();
h.sendEmptyMessageDelayed(0,20);
}

}
};
public ProssgressView(Context context) {
super(context);
}

public ProssgressView(Context context, AttributeSet attrs) {
super(context, attrs);
}

public ProssgressView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);

}

@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint =new Paint();
paint.setColor(Color.RED);
paint.setAntiAlias(true);
paint.setStrokeWidth(5);
paint.setStyle(Paint.Style.STROKE);
canvas.drawCircle(100,100,100,paint);
//弧线
RectF rectf=new RectF();
paint.setColor(Color.GREEN);
paint.setStrokeWidth(3);
canvas.drawArc(rectf,0,306*progess ,false,paint);
String text =progess+ "%";
//矩形
Rect textRect=new Rect();
paint.setColor(Color.BLACK);
//获取文字大小
float v = paint.
947f
measureText(text);
paint.setStrokeWidth(1);
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.BLACK);
paint.setTextSize(40);
canvas.drawText(text,100-v/2,100,paint);
}
public  void strat(){
h.sendEmptyMessageDelayed(0,20);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: