Android自定义view画圆

来源:互联网 发布:linux oracle 监听 编辑:程序博客网 时间:2024/05/20 19:45
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;

/**
 * Created by dell on 2017/9/27.
 */

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

}



原创粉丝点击