自定义view画圆

来源:互联网 发布:word mac破解版 编辑:程序博客网 时间:2024/06/04 19:04
初始化一个画笔
 
   private Paint paint;
    Context ccontext;

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

    public Circle(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        this.ccontext=context;
    }

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

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    }

    @Override
    protected void onDraw(Canvas canvas) {

//        Paint pa = new Paint();
//        //圆
//        Paint pa1 = new Paint();
//        float wi = canvas.getWidth()/2;
//        float he = canvas.getHeight()/2;
//        pa.setColor(Color.BLACK);
//        pa.setARGB(255, 199, 33, 56);
//        pa1.setColor(Color.BLUE);
//
//        pa.setAntiAlias(true);                       //设置画笔为无锯齿
//        pa1.setAntiAlias(true);
//
//        canvas.drawColor(Color.YELLOW);
//        canvas.drawCircle(30, 30,60, pa);
//        canvas.drawCircle(wi, he, 60, pa1);
//        canvas.drawText("1508A大神养成记", wi, he, pa);

        //设置总背景颜色
//        canvas.drawColor(Color.parseColor("#00bfa5"));
//        canvas.drawRGB(100,200,100);
//             alpha 透明度设置
        canvas.drawARGB(300,100,200,100);

        Paint p1= new Paint();
        Paint p2=new Paint();
        Paint p3=new Paint();
        Paint p4=new Paint();

        p1.setColor(Color.WHITE);
        p2.setColor(Color.YELLOW);
        p3.setColor(Color.parseColor("#FF8C00"));
        p4.setColor(Color.RED);

        //获取高度宽度
        float width=canvas.getWidth();
        float height=canvas.getHeight();

        //设置为内部充满
        p2.setStyle(Paint.Style.FILL);
        //内部为空
        p1.setStyle(Paint.Style.FILL);
        p3.setStyle(Paint.Style.FILL);
        p4.setStyle(Paint.Style.FILL);
        p4.setStrokeWidth(5f);

        //drawCircle 参数 圆心横坐标 圆心纵坐标 半径 画笔
        canvas.drawCircle(width/3,height/3, 200,p1);
        canvas.drawCircle(width/3,height/3,120,p2);

        canvas.drawRect(width/2-50,200,height/ 2 + 200, 300, p3);
        canvas.drawRoundRect(width/2-100,400,height/2+200,100,50,50,p4);

        super.onDraw(canvas);

    }

    @Override
    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
        super.onLayout(changed, left, top, right, bottom);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        return super.onTouchEvent(event);
    }