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) 一目了然吧。

iOS的 context 和Android 中的 canvas

ios 想要绘图,要用到CGContextRef类.最基本的用法是在- (void)drawRect:(CGRect)rect 函数中绘制. Android 中要用到Canvas类.最基本的用法是在  ...

Android中使用Canvas和Paint绘制一个安卓机器人

场景 在Android中画笔使用Paint类,画布使用Canvas类来表示. 绘图的基本步骤 首先编写一个继承自View的自定义View类,然后重写其onDraw方法,最后把自定义的view添加到ac ...

android中画弧函数canvas.drawArc()之理解

在学习android中图形图像处理技术这部分内容时,对绘制圆弧函数canvas.drawArc()的用法.参数含义及画图原理很是不理解,在网上搜索了一些,加上自己的理解,在此做个小总结,作为学习过程中 ...

android canvas 画图笔记

android canvas 画图笔记 1.PathEffect类 画虚线 Paint p = new Paint(Paint.ANTI_ALIAS_FLAG); p.setStyle(Paint.S ...

Canvas画图在360浏览器中跑偏的问题

问题描述,canvas画图的js代码中编写的是画正方形的代码,结果在360浏览器上变成了长方形,不知道怎么回事,请问各位大神是否遇到过此类问题?

android中画文字的换行 办法(对于遇到canvas.drawText(String s )无法实现换行问题的解决)

在使用canvas.drawText()绘制文字的时候,发现,如果需要绘制的文字较长,需要换行,通过在文字中加上“\n"或者”\r\n"都无法实现换行,如果非要使用canvas.d ...

Android中使用SurfaceView和Canvas来绘制动画

事实上每一个View中都有Canvas能够用来绘制动画.仅仅须要在这个View中重载onDraw()方法就能够,可是SurfaceView类是一个专门用来制动动画的类. Canvas(中文叫做&quo ...

Android中Canvas绘图基础详解(附源码下载) (转)

Android中Canvas绘图基础详解(附源码下载) 原文链接  http://blog.csdn.net/iispring/article/details/49770651   AndroidCa ...

Android 中常见控件的介绍和使用

1 TextView文本框 1.1 TextView类的结构 TextView 是用于显示字符串的组件,对于用户来说就是屏幕中一块用于显示文本的区域.TextView类的层次关系如下: java.la ...

随机推荐

EF:自定义Oracle的映射类型

oracle在DB First模式下,int类型的字段会自动映射为decmial类型的属性. 我们可以通过自定义类型映射进行“纠整”. 在app.config 自定义映射规则:

centos 软件包安装与管理

http://rpmfind.net/linux/RPM/index.html http://pkgs.org/ https://sourceforge.net/

web_submit_data函数上传图片

web_submit_data函数上传图片 通常loadrunner上传下载文件脚本不能通过录制来实现,录制上传脚本回放过程会出问题,主要原因在于上传文件的路径,了解了上传文件的原理之后,可以手工完成 ...

linux主机间复制文件

命令基本格式: 1.从 本地 复制到 远程    * 复制文件:          * 命令格式:                  scp local_file remote_username@re ...

keepalived + nginx双主 实战

安装nginx nginx 下载地址 http://nginx.org/download/nginx-1.8.0.tar.gz 安装nginx的依赖关系 yum install pcre pcre-d ...

TOGAF架构内容框架之内容元模型(下)

TOGAF架构内容框架之内容元模型(下) 2.2 治理扩展(Governance Extensions) 治理扩展元模型内容 治理扩展部分的意图在于引入额外的,并且与支持运营治理的目标和业务服务相关的 ...

JAVA HashMap 解析

1.简介(其实是HashMap注释的大致翻译) 本文基于JDK1.8,与JDK1.7中的HashMap有一些区别,看官注意区别. HashMap实现了Map接口,提供了高效的Key-Value访问.H ...

linux 查看cpu个数,内存情况,系统版本

查看cpu个数 总核数 = 物理CPU个数 * 每颗物理CPU的核数 总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数 查看物理CPU个数 cat /proc/cpuinfo ...

CentOS6.9-zabbix3.2启动失败原因及页面没有mysql选择项

环境内核信息: [root@zabbix- ~]# uname -a Linux lodboyedu- -.el6.x86_64 # SMP Tue Mar :: UTC x86_64 x86_64 ...

Touch Handling in Cocos2D 3.x(六)

使英雄变成可触碰的对象 这是另一个非常有用的特性.很多用户需要捡起已经存在的英雄然后满屏幕移动它们.让我们按以下步骤实现该功能: 如果用户触摸屏幕空白位置,一个新的英雄将被创建 如果用户触摸一个已经存 ...

canvas 画图 android,Android 中的Canvas画图相关推荐

  1. Android studio中实现CANVAS(用JAVA绘制各种图形以及渐变动画)

    方法一:直接在JAVA类中写图形定义(4个参数均为坐标,指的是以上边界和左边界为原点的坐标,即边界距离) public class DrawView extends View {public Draw ...

  2. HTML5 中的canvas元素用于,HTML5中的Canvas元素

    canvas 元素用于在网页上绘制图形. 什么是Canvas? HTML 5 的canvas元素使用JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. canvas ...

  3. html的canvas标签用法,html5中关于canvas标签用法(绘图)

    标签只是图形容器,您必须使用脚本来绘制图形. 用canvas配合javascript可以直接在html页面动态绘图,无需调用jquery. 代码如下: var my_canvas=document.g ...

  4. android中怎么画图工具,Android画图工具的制作

    Android 项目中使用到画图工具,本文记载如何实现,需详细了解cavas和surfaceviw 1 三星pad 三星pad自带的手写笔可以很好的支持画图,集成三星的sdk 以上三星官方提供的库文件 ...

  5. android设计一个多线程和画图的程序小球,Android开发之多线程中实现利用自定义控件绘制小球并完成小球自动下落功能实例...

    本文实例讲述了Android开发之多线程中实现利用自定义控件绘制小球并完成小球自动下落功能的方法.分享给大家供大家参考,具体如下: 1.布局界面 xmlns:tools="http://sc ...

  6. Android 中的 Canvas API

    使用 Android Widget 组中不存在的自定义 UI 元素并想知道它是如何制作的? 这是 Android 中存在的 Canvas API 的魔力.我认为画布这个名字本身就定义了它是艺术家的游乐 ...

  7. html中使用canvas画图

    需求 把一张雪碧图渲染到页面上,让当前展示的图片看起来像动图一样.使用canvas能简单且快速的做到. 实现步骤 html代码如下: <canvas id="logo" wi ...

  8. s时钟画布 android,Android UI编程进阶——使用SurfaceViewt和Canvas实现动态时钟

    概述: 很多时候我们想要自己写一些类似时钟.罗盘的控件,却又找不到合适的Demo.我想这时你可能索性就直接上图片了.在Android有Canvas和Paint这么好的画师的情况下,还是选择使用图片,的 ...

  9. Android 如何清空 Canvas 清屏只需三句话

    android开发--Canvas清屏只需三句话 分类: Android开发 2012-11-28 21:51 4269人阅读 评论(19) 收藏 举报 这两三天一直在研究这个问题,今天终于成功了.我 ...

  10. 【Android 应用开发】Canvas 精准绘制文字 ( 文本边界坐标解析 | 绘图位置 )

    文章目录 一.文本边界坐标解析 二.绘图位置 一.文本边界坐标解析 在上一篇博客 [Android 应用开发]Canvas 精准绘制文字 ( 测量文本真实边界 | 将文本中心点与给定中心点对齐 ) 中 ...

最新文章

  1. java抽象类与抽象方法详解+练习题
  2. ubuntu每次登陆都用root账号登陆
  3. unity串口 连接多个串口崩溃_3分钟全面了解串口服务器原理技术
  4. 世界你好! 个人网站搭建过程
  5. eclipse编译android工程提示无翻译字符串错误的忽略方法
  6. 嵌入式软件开发好,还是硬件开发好?
  7. AD15使用出现的小问题
  8. 第三方易支付系统源码
  9. Mac的开机启动项如何关闭?
  10. 思科无线服务器,Cisco统一无线网络TACACS+配置
  11. 认识BLE 5协议栈 —— 直接测试模式
  12. 14 ABSOLUTE评估肿瘤纯度
  13. 桌面被关闭,如何在任务管理器中打开桌面?
  14. pon终端测试仪_6304-PON终端测试仪报价_测试仪-北京海富达科技有限公司
  15. kubeadm,kubevip,containerd部署高可用的kubernetes集群
  16. 麦肯锡逻辑树——快速分析和解决问题的有效方法
  17. Processing基本函数整理
  18. Oracle ERP 库存管理(业务流程 核心流程) [转]
  19. vue如何在一个组件中引用另外一个组件并使用?有两种方法
  20. 怎么将计算机图标放到桌面,win10怎么把计算机图标放到桌面

热门文章

  1. Thinkpad笔记本键盘拆卸
  2. Mysql中使用逗号隔开多张表生成的表实例
  3. open_table与opened_table
  4. 如何编写一份完整的软件测试报告?(进阶版)
  5. 7-9 幂集(回溯法) (20 分)(C语言版)
  6. 植物大战僵尸修改金币以及关卡
  7. IBM Tivoli NetView网管软件实战
  8. 港湾嫁西门子梦断华为诉讼 内耗致高层离职
  9. css代码实现3D动画翻转 - 鱿鱼游戏卡片制作
  10. 树莓派 PHP白屏,树莓派系统安装及3.5寸显示屏白屏解决办法