文档章节

Canvas 绘图

TedYin
 TedYin
发布于 2014/04/27 11:06
字数 412
阅读 1656
收藏 3

在最近的项目中有好几个地方都用到了自定义的ProgressBar

分享并记录一下:

    先介绍一下Canva、Paint、RectXX、 Bitmap、Drawable之间的关系:

    Canvas:封装了多种绘图所用的方法,他就相当于一个图形画法的集合,你需要画什么图形调用相应的drawXXX()方法就可以实现。他除了封装了画图方法还封装了对图片进行裁剪的clipXXX()方法。

    Paint:现在有了画图的方法集合,也就是有了画图的技术说明,那怎么去实际去画这个图呢?现在就需要一个大师傅进行操刀进行画图,这个实际进行绘画的人就是Paint,每个师傅有他各自的特点,有的刀工好,有的刻花好,TextPaint就是写字比较好。

    RectXX:这个类族的作用就是为大师傅提供一个施展才华的舞台,android使用Canvas提供的方法,请Paint在RectXX上进行绘画,得到的结果就存储在一个内存空间里,这个空间就是一个Bitmap

   Drawable:上述的操作都是在内存中进行的,是看不见的,而Drawable就是一个真实接口,他将上述内存中的影封装起来提供给外界来展示,它将上述三者的结果表现出来。

    说完上述几者之间的关系,下面说说在画图时的坐标问题:

    如下图所示:

    Canvas绘图时的坐标原点也是在左上角。

    好了关于Canvas绘图等之间的关系就先介绍到这里。






© 著作权归作者所有

共有 人打赏支持
TedYin
粉丝 1
博文 20
码字总数 10592
作品 0
深圳
程序员
私信 提问
《WebGL编程指南》学习笔记——2.WebGL概述

上一节初步认识了WebGL,这一小节我们来开始学习使用< canvas >元素绘制二维图形 下小节我们正式开始学习如何在< canvas >中使用WebGL WebGL采用HTML5中新引入的元素,它定义了网页上的绘图区...

hushhw
2017/12/16
0
0
《WebGL编程指南》学习笔记——3.在Canvas中使用WebGL

《WebGL编程指南》学习笔记——2.在Canvas中使用WebGL 上一节学习了使用< canvas >元素绘制二维图形,这一节里面我们在< canvas >中使用WebGL 下小节我们正式开始学习如何在< canvas >中使用...

hushhw
2017/12/19
0
0
《WebGL编程指南》学习笔记——2.使用元素

版权声明:欢迎访问http://hushhw.cn (我的个人博客) https://blog.csdn.net/hushhw/article/details/78821908 《WebGL编程指南》学习笔记——2.使用< canvas >元素 上一节初步认识了WebGL...

hushhw
2017/12/16
0
0
使用excanvas时的常见问题

HTML5标准已经发布一段时间了,新标准中强大的绘图能力和嵌入多媒体能力备受关注,canvas标签无疑是HTML5的一大招牌。IE6、7、 8原本不支持canvas标签,google提供了一个有效的解决方法Explo...

红薯
2011/11/05
2.3K
0
canvas 学习笔记

由于公司业务需要,要用canvas,实现一些比较炫酷的效果,所以这段时间领导让学canvas,正好个人想用canvas做个网站宠物,给以后自己的个人博客用,所以两全其美,就开始了。 需要的基础知识...

起什么name呢
2016/04/23
93
0

没有更多内容

加载失败,请刷新页面

加载更多

https

进入阿里云域名后台,修改DNS为阿里云官方DNS(默认为官方),然后点击“免费开启SSL证书” 点击“申请”、“验证”并等待签发 然后根据自己的服务器类型下载对应的证书 我使用的是lnmpa工具...

临江仙卜算子
16分钟前
0
0
Quartz监听器Listerner

概述 Quartz的监听器用于当任务调度中你所关注事件发生时,能够及时获取这一事件的通知。Quartz监听器主要有JobListener、TriggerListener、SchedulerListener三种,顾名思义,分别表示任务、...

大笨象会跳舞吧
44分钟前
4
0
Call exception, tries=10, retries=35, started=38348 ms ago, cancelled=false, msg=pc-node1 row

写hbase的问题,2019-01-18 23:23:28,082 | INFO | [hconnection-0x6431d54d-shared--pool2-t5] | Call exception, tries=10, retries=35, started=38348 ms ago, cancelled=false, msg=p......

stys35
47分钟前
2
0
docker 安装portainer、gogs、redis、mongodb、es、rabbitmq、mysql、jenkins、harbor

1、准备三台虚拟机ip如下 编号 Ip 1 192.168.100.101 2 192.168.100.102 3 192.168.100.103 2、镜像应用编排 192.168.100.101 主要安装系统运维相关服务 192.168.100.102 主要安装mysql、mon...

北岩
57分钟前
8
0
storm 提交任务报SocketException错误及解决办法

提交任务爆错: org.apache.storm.thrift.transport.TTransportException: java.net.SocketException: Broken pipe (Write failed) ..... Caused by: org.apache.storm.thrift.transport.TTr......

jingshishengxu
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部