天天看點

Android自定義view畫圓

package com.bwie.test.custom_view;

import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.RectF;

import android.util.AttributeSet;

import android.view.MotionEvent;

import android.view.View;

import static android.R.attr.textSize;

public class VirtualKeyView extends View {

    public VirtualKeyView(Context context) {

        super(context);

    }

    public VirtualKeyView(Context context, AttributeSet attrs) {

        super(context, attrs);

    }

    public VirtualKeyView(Context context, AttributeSet attrs, int defStyleAttr) {

        super(context, attrs, defStyleAttr);

    }

    public VirtualKeyView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {

        super(context, attrs, defStyleAttr, defStyleRes);

    }

    //測量

    @Override

    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

        super.onMeasure(widthMeasureSpec, heightMeasureSpec);

    }

    //繪圖

    @Override

    protected void onDraw(Canvas canvas) {

        super.onDraw(canvas);

        //畫圓

        //初始化畫筆 文字

        Paint pa = new Paint();

        //圓

        Paint pa1 = new Paint();

        Paint pa2 = new Paint();

        Paint mCirclePaint = new Paint(Paint.ANTI_ALIAS_FLAG);

        Paint mTextPaint = new Paint(Paint.ANTI_ALIAS_FLAG);

        float wi = canvas.getWidth() / 2;

        float he = canvas.getHeight() / 2;

      RectF  mRectF = new RectF(wi * 0.1f, wi * 0.1f, he * 0.9f,

                he * 0.9f);

        pa.setColor(Color.RED);

//        pa.setARGB(255, 000, 33, 56);

        pa2.setColor(Color.WHITE);

        pa.setTextSize(40);

        pa.setTextAlign(Paint.Align.CENTER);

        pa1.setColor(Color.BLUE);

        pa.setAntiAlias(true);                       //設定畫筆為無鋸齒

        pa1.setAntiAlias(true);

        //整個畫布的顔色

        canvas.drawColor(Color.YELLOW);

        canvas.drawCircle(wi, he, 200, pa);

        canvas.drawCircle(wi, he, 150, pa2);

        canvas.drawCircle(wi, he, 100, pa1);

        canvas.drawText("aa", wi, he, pa);

        canvas.drawCircle(wi, he, wi * 0.5f / 2, mCirclePaint);

        canvas.drawArc(mRectF, 200, 200, false, pa);

        canvas.drawText("你好", 0, "你好".length(), wi, he + textSize

                / 4, mTextPaint);

    }

    //定位

    @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);

    }

}

Android自定義view畫圓

繼續閱讀