博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 中的Canvas画图
阅读量:4934 次
发布时间:2019-06-11

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

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

   Canvas():创建一个空的画布,可以使用setBitmap()方法来设置绘制的具体画布;
   Canvas(Bitmapbitmap):以bitmap对象创建一个画布,则将内容都绘制在bitmap上,bitmap不得为null;
    Canvas(GLgl):在绘制3D效果时使用,与OpenGL有关;
   drawColor:设置画布的背景色;
   setBitmap:设置具体的画布;
   clipRect:设置显示区域,即设置裁剪区;
    isOpaque:检测是否支持透明;
   rotate:旋转画布;
 
   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)方法用于画圆,前两个参数代表圆心坐标,第三个参数为圆半径,第四个参数是画笔;
  清楚这些函数的用法之后,我们是否就噼里啪啦地敲代码了呢?别急,我们来搞个设计。既然这些函数都是用来画图的,也就是说它们有共性——画。所有我们应该设计一个接口interface,对于这次任务,只需要一个成员方法就足够了。对于每一个图形,是只用一个方法画,还是将画图封装成类呢?我建议是封装成类。因为说不定你明天就会嫌弃它不会动,想它动起来,或者你过两天又希望在图的每个部位加点什么。所以我将每一个图形封装成类,都实现一个名叫drawGraphics的接口。最后,要记得给UI创建一个线程哦。
不过要注意的是这里的Rect跟Java的Rectangle是不一样的,原来这厮跟MFC中的RECT结构才是一家人。
    Rect(intleft,int top,int right,int bottom)
    left
             矩形左上角X坐标值
    top
            矩形左上角Y坐标值
    right
            矩形右下角X坐标值
    bottom
            矩形右下角Y坐标值

 下面借用一张图说明忘了哪个博客找来的了,如Rect(150,75, 260, 120) 一目了然吧。

 

转载于:https://www.cnblogs.com/jasonkent27/p/4249240.html

你可能感兴趣的文章
FW Windows下DOS命令大全(经典收藏)---mklink
查看>>
bootloader,kernel,initrc
查看>>
处理百万级以上的数据提高查询速度的方法
查看>>
swing学习1--swing的HelloWorld
查看>>
Python:运算符
查看>>
对jQuery ajax三级级联的简单研究
查看>>
实用 35 个 jQuery 小技巧
查看>>
xshell安装错解决方案
查看>>
Android中控制虚拟键盘
查看>>
flask报错No module named 'flask.ext'
查看>>
Linux用户信息查询
查看>>
讲HOOK的一篇文章
查看>>
开始学习Python啦
查看>>
Java【第十篇】集合
查看>>
学习HTML第二天 学习格式标记和文本标记
查看>>
Linux常用命令
查看>>
第二周的学习
查看>>
趣谈Hbase架构
查看>>
Python_Tips
查看>>
个性化你的博客园【持续更新中!!!】
查看>>