自定义view画圆

来源:互联网 发布:dnf提示框源码 编辑:程序博客网 时间:2024/05/16 02:55
package com.bwie.one;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;/** * Created by dream on 2017/9/27. */public class VirtualKeyView extends View{    private Paint mPaint;    Context context;    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 pal=new Paint();        Paint pall=new Paint();        Paint fang=new Paint();        float wi=canvas.getWidth()/2;        float he=canvas.getHeight()/2;        pa.setColor(Color.YELLOW);        fang.setColor(Color.WHITE);        pa.setARGB(255,199,99,56);        pal.setColor(Color.BLUE);        pall.setColor(Color.WHITE);        //设置画笔无锯齿        pa.setAntiAlias(true);        pal.setAntiAlias(true);        canvas.drawColor(Color.WHITE);        canvas.drawCircle(wi,he,120,pa);        canvas.drawCircle(wi,he,80,pall);        canvas.drawCircle(wi,he,40,pal);        canvas.drawRect(80, 250, 180, 350,fang);        canvas.drawText("1508a",wi,he,pa);    }    //定位    @Override    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {        super.onLayout(changed, left, top, right, bottom);        /**         * onFinihInflate() 当view中所有的子控件均被映射成xml后触发         * onMeasure(int ,int)确定所有子元素的大小         * onLyout(boolean, int, int, int) 当view的大小发生变化时触发         * onDraw(Canvas) view渲染内容的细节         * onKeyDown(int ,keyEvent)有按键按下后触发         * onKeyUp(int,keyEvent)有按键按下弹起后触发         * onTrachballEvent(MontionEvent)轨迹球事件         * onTouchEvent(MontionEvent)触屏事件         *         */    }   //监听    @Override    public boolean onTouchEvent(MotionEvent event) {        return super.onTouchEvent(event);    }}
xml页面
<com.bwie.one.VirtualKeyView    android:id="@+id/cv"    android:layout_centerInParent="true"    android:layout_width="wrap_content"    android:layout_height="wrap_content"/>

原创粉丝点击