Android自定义View的入门

来源:互联网 发布:刺客信条壁纸软件 编辑:程序博客网 时间:2024/06/08 11:06
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);  //根据进度画圆弧    }}

这里写图片描述

原创粉丝点击