【Android 自定义控件】2

本文详细介绍了Android应用中如何使用Canvas API进行基本图形绘制,包括使用`drawLines`绘制直线,`drawPoint`和`drawPoints`画点,以及`drawRect`和`drawRoundRect`绘制矩形和圆角矩形。还探讨了不同形状的创建方法和参数含义。

float []pts={10,10,100, 100, 200, 200,400,400};

canvas.drawLines(pts, 2,4,paint); //表示从pts 数组中索引为2的数字开始绘图,有4个数值参与绘图,也就是点(100,100)和(200,200),所以效果图就是这两个点的连线。

[](()基本语法

void drawLines(float[] pts,Paint paint)

void drawLines(float [ ] pts,int offset, int count,Paint paint)

[](()参数说明

pts:点的集合,pts的组织方式为{x1,y1,x2,y2,x3,y3,…}。

offset:集合中跳过的数值个数。注意不是点的个数!一个点有两个数值。

count:参与绘制的数值个数,指pts数组中数值的个数,而不是点的个数,因为一个点有两个数值。

paint:绘制时所使用的画笔。

[](()4.画点

=======================================================================

[](()单个点


//画笔

Paint paint=new Paint() ;

paint.setColor(OxFFFFOOOO );

paint.setStrokeWidth(50);

//画布(画点)

canvas.drawPoint(100, 100, paint);

[](()基本语法

void drawPoint(float x, float y, Paint paint)

[](()参数说明

x:点的X坐标。

y:点的Y坐标。

paint:绘制时所使用的画笔。

[](()多个点


Paint paint = new Paint();

paint.setColor(Color.RED);

paint.setStrokeWidth(25);

float[] pts = {10,10,100,100,200,200,400,400};

canvas.drawPoints(pts, 2, 4, paint); //4个点:(10,10)、(100,100)、(200,200)和(400,400),在 drawPoints()函数里跳过前两个数值,即第一个点的横、纵坐标,画出后面4个数值代表的点,即第二、三个点,第四个点没画。

[](()基本语法

void drawPoints (float [] pts,Paint paint)

void drawPoints(float[ ] pts,int offset,int count,Paint paint)

[](()参数说明

pts:点的合集,与上面的直线一致,样式为{x1,y1,x2,y2,x3,y3,…}。

offset:集合中跳过的数值个数。注意不是点的个数!一个点有两个数值。

count:参与绘制的数值个数,指pts数组中数值的个数,而不是点的个数。

paint:绘制时所使用的画笔。

[](()5.画矩形

========================================================================

[](()区别:


RectF 所保存的数值类型是 float 类型

Rect 所保存的数值类型是 int 类型

[](()构造矩形的两种方法:


//方法一 直接构造

Rect rect = new Rect(10, 10, 100, 100);

//方法二 间接构造

Rect rect = new Rect();

rect.set(10, 10, 100, 100);

[](()绘制矩形:


Paint paint = new Paint();

paint.setColor(Color.RED);

paint.setStyle(Paint.Style.STROKE);

paint.setStrokeWidth(15);

//直接构造

canvas.drawRect(10, 10, 100, 100, paint);

//使用 RectF 构造

RectF rect = new RectF(210f, 10f, 300f, 100f);

canvas.drawRe 《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》无偿开源 徽信搜索公众号【编程进阶路】 ct(rect, paint);

[](()6.画圆角矩形

==========================================================================

Paint paint = new Paint();

paint.setColor(Color.RED);

paint.setStyle(Style.FILL);

paint.setStrokeWidth(15);

RectF rect = new RectF(100,10,300,100);

canvas.drawRoundRect(rect,20,10, paint);

[](()基本语法


void drawRoundRect (RectF rect, float rx, float ry,Paint paint)

[](()参数说明


rect:要绘制的矩形。

rx:生成圆角的椭圆的X轴半径。

ry:生成圆角的椭圆的Y轴半径。

paint:绘制时所使用的画笔。

[](()7.画椭圆

========================================================================

Paint paint = new Paint();

paint.setColor(Color.RED);

paint.setStyle(Paint.Style.STROKE);

paint.setStrokeWidth(5);

RectF rect = new RectF(100,10,300,100);

canvas.drawRect(rect, paint);

canvas.drawOval(rect, paint);//根据同一个矩形画椭圆

[](()基本语法


void drawOval(RectF oval, Paint paint)

[](()参数说明

oval:用来生成椭圆的矩形。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值