Android 开发之自定义控件开发-01

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34476727/article/details/84529935

最近一直在忙于公司的项目,因为要去现场测试正式使用,项目不大但是经手了三个人,到我这里只能去填坑了,不说这个了,说一下今天得主题,自定义控件之基本图形绘制。

我们平时画图需要两种工具:纸和笔。在Android中 Paint 就是画笔,而Canvas类就是纸,在这里叫做画布。
所以,凡是跟画笔有关的设置,比如画笔的大小、粗细、画笔颜色、透明度、字体样式等,都在Paint类里设置,同光;凡是要画出成品的东西,比如圆形、矩形、文字等,都要调用Canvas里的函数生成。

下面我们自定义一个控件来说明一下:

public class BasisView extends View {

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

    public BasisView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
    }

    public BasisView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        /** 创建一个画笔 */
       Paint paint= new Paint();
       /** 设置画笔颜色 */
        paint.setColor(Color.RED);
        /** 设置填充样式 */
        paint.setStyle(Paint.Style.STROKE);
        /** 设置画笔宽度 */
        paint.setStrokeWidth(50);

        /** 画圆 */
        canvas.drawCircle(190,200,150,paint);
    }
}

在这里插入图片描述

代码很简单,首先写一个类派生自View 。 派生的View 表示当前是一个自定义控件,类似Button、TextView这些控件都是派生自View的。如果我们想像LinearLayout、RelativeLayout这样生成一个容器,则需要派生ViewGroup。这个我们以后再说。
其次,重写onDraw(Canvas canvas)函数。可以看到,在该函数中,入参是一个Canvas 对应,也就是当前控件的画布,所以我们只要调用Canvas ,的绘制函数,效果就可以直接显示在空间上了。
在onDraw (Canvas canvas) 函数中,我们设置了画笔的基本属性。

    /** 创建一个画笔 */
       Paint paint= new Paint();
       /** 设置画笔颜色 */
        paint.setColor(Color.RED);
        /** 设置填充样式 */
        paint.setStyle(Paint.Style.STROKE);
        /** 设置画笔宽度 */
        paint.setStrokeWidth(50);

然后我们通过 canvas.drawCircle绘制出圆形和它的位置

/** x= 180, y=200 半径=150  画笔=paint */
 canvas.drawCircle(190,200,150,paint);

就这样一个基础的图形,圆就画出来了

猜你喜欢

转载自blog.csdn.net/qq_34476727/article/details/84529935