import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;
/**
* 作者:Mr.Lee on 2017-5-27 13:31
* 邮箱:569932357@qq.com
*/
public class TestView extends View {
private Paint paint;
private Paint paint;
public TestView(Context context) {
this(context, null,0);
}
public TestView(Context context, @Nullable AttributeSet attrs) {
this(context, attrs,0);
}
public TestView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
paint = new Paint();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//画红色的圆环
int centre = getWidth()/2; //获取圆心的x坐标
int radius = (int) (centre - 6/2); //圆环的半径
paint.setColor(Color.RED); //设置圆环的颜色
paint.setStyle(Paint.Style.STROKE); //设置空心
paint.setStrokeWidth(6); //设置圆环的宽度
paint.setAntiAlias(true); //消除锯齿
canvas.drawCircle(centre, centre, radius, paint); //画出圆环(radius内圆半径)
//画绿色的圆弧
paint.setStyle(Paint.Style.STROKE);
//paint.setStyle(Paint.Style.FILL_AND_STROKE);
paint.setStrokeWidth(6); //设置圆环的宽度
paint.setColor(Color.GREEN); //设置进度的颜色
RectF oval = new RectF(centre - radius, centre - radius, centre
+ radius, centre + radius); //用于定义的圆弧的形状和大小的界限
//第一个参数oval为RectF类型,即圆弧显示区域,
//startAngle和sweepAngle均为float类型,
//分别表示圆弧起始 角度和圆弧度数,3点钟方向为0度,
//useCenter设置是否显示圆心,boolean类型,paint为画笔
canvas.drawArc(oval, 0, 270, false, paint); //根据进度画圆弧
}
}
Android自定义View-圆环
最新推荐文章于 2024-04-06 07:23:14 发布