自定义控件02

  1. rect和rectF
    构造方法传入左顶点和右下角的坐标值
    先来看一段代码:
    @Override
    protected void onDraw(Canvas canvas) {

        RectF rect = new RectF(10, 10, 100, 100);
        Rect rect2 = new Rect(10, 200, 100, 300);
        canvas.drawRect(rect, mPaint);
        canvas.drawRect(rect2, mPaint);
    }

效果是这样的,两者看起来貌似没有什么区别

image.png

再看一段代码:

 @Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
        super.onSizeChanged(w, h, oldw, oldh);
        /**
         * 这是一个居中的圆
         */
        float x = (getWidth() - getHeight() / 2) / 2;
        float y = getHeight() / 4;

        mOval = new RectF( x, y,
                getWidth() - x, getHeight() - y);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        canvas.drawRect(mOval,mPaint);
       canvas.drawArc(mOval,-90,90,true,mPaint2);

    }

当我们设置为true时,就经过圆心
canvas.drawArc(mOval,-90,90,true,mPaint2);
画出来的效果:

image.png

当我们设置为false时,不经过圆心
canvas.drawArc(mOval,-90,90,false,mPaint2);

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容