Canvas类的使用
发布日期:2022-02-26 00:17:50 浏览次数:7 分类:技术文章

本文共 1315 字,大约阅读时间需要 4 分钟。

计划项目中有涉及到用户签字确认的功能,想先写写签字模块,要实现的功能是通过判断用户手势在指定模块绘制出轨迹并保存,所以就写个涂鸦板之类的小Demo练手。在写的过程中最重要的是Canvas类的使用,下面对Canvas类的知识进行总结,以备自己日后查阅。

Canvas类(android.graphics.Canvas)就是表示一块画布,你可以在上面画你想画的东西。当然,你还可以设置画布的属性,如画布的颜色/尺寸等。Canvas提供了如下一些方法:

Canvas():创建一个空的画布,可以使用setBitmap()方法来设置绘制的具体画布;

    Canvas(Bitmap bitmap):以bitmap对象创建一个画布,则将内容都绘制在bitmap上,bitmap不得为null;

    Canvas(GL gl):在绘制3D效果时使用,与OpenGL有关;

    drawColor:设置画布的背景色;

    setBitmap:设置具体的画布;

    clipRect:设置显示区域,即设置裁剪区;

    isOpaque:检测是否支持透明;

    rotate:旋转画布;

怎么用Canvas画矩形/圆/圆弧和线条:

canvas.drawRect(RectF,Paint)方法用于画矩形,

第一个参数为图形显示区域,第二个参数为画笔,设置好图形显示区域Rect和画笔Paint后,即可画图;

canvas.drawRoundRect(RectF, float, float, Paint) 方法用于画圆角矩形,

第一个参数为图形显示区域,第二个参数和第三个参数分别是水平圆角半径和垂直圆角半径。

canvas.drawLine(startX, startY, stopX, stopY, paint):方法用于画一条直线,

前四个参数的类型均为float,最后一个参数类型为Paint。表示用画笔paint从点(startX,startY)到点(stopX,stopY) 画一条直线;

canvas.drawArc(oval, startAngle, sweepAngle, useCenter, paint):方法用于画一条圆弧,

第一个参数oval为RectF类型,即圆弧显示区域,startAngle和sweepAngle均为float类型,分别表示圆弧起始角度和圆弧 度数,3点钟方向为0度,useCenter设置是否显示圆心,boolean类型,paint为画笔;

canvas.drawCircle(float,float, float, Paint)方法用于画圆,

前两个参数代表圆心坐标,第三个参数为圆半径,第四个参数是画笔;

在定位的时候,也就是设置每个图形的显示区域时,这里的Rect跟Java的Rectangle是不一样的,跟MFC中的RECT结构一样。

   Rect(int left,int top,int right,int bottom) 

    left              矩形左上角X坐标值

    top              矩形左上角Y坐标值

    right              矩形右下角X坐标值

    bottom              矩形右下角Y坐标值

下面借用一张图说明,如Rect(150, 75, 260, 120)

转载地址:https://blog.csdn.net/TnTlittlefish/article/details/52411711 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:自定义控件:not using the 2- or 3-argument View constructors
下一篇:获取应用目录

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月11日 02时16分22秒