文档章节

Canvas 绘图

TedYin
 TedYin
发布于 2014/04/27 11:06
字数 412
阅读 1655
收藏 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
存储和恢复 HTML5 Canvas 状态

当我们在 HTML5 Canvas 上使用其 2D 上下文进行图形绘制的时候,可以通过操作 2D 上下文的属性来绘制不同风格的图形,例如不同字体、填充等等。 通常情况下,在画布上的绘图时,您需要更改在...

红薯
2012/01/14
655
3
Web 开发中的矢量绘图处理和应用

矢量绘图一直是 Web 开发中一直比较薄弱的环节。本文首先针对不同浏览器详细阐述不同的矢量绘图解决方案,其中包括 HTML5 Canvas、SVG 以及 VML 等技术;之后针对每种不同的技术介绍其实现和...

IBMdW
2011/09/03
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

结合lucene谈谈日期的压缩问题

说起日期值的压缩,一般容易想到的办法是将日期转化成long类型,然后再通过变长整形进行压缩,我算了一下按照毫秒来算最多占用5个字节(可以通过“谈谈变长整型”中的表查看),确实节省了部...

FAT_mt
48分钟前
0
0
导出私有函数与私有变量

在Go语言中, package中包含函数与变量通过identifier的首字母是否大写来决定它是否可以被其它package所访问。当一个函数或变量名称为小写字母时,默认是无法被其他package引用的. 有没有办法...

xtof
48分钟前
1
0
new Date() 在Safari下的 Invalid Date问题

问题复现 var timeStr = '2018-11-11 00:00:00';var time = new Date(timeStr);// error: Invalid Date... 在safari浏览器下,time为Invalid Date, 导致后面代码执行错误; 其他浏览器诸...

会写代码的husky
53分钟前
2
0
0009-如何升级Cloudera Manager和CDH

1.文档编写目的 本文档讲述如何升级Cloudera Manager和CDH,通过本文档,您将学习到以下知识: 1.如何对Cloudera Manager进行停机升级 2.如何对CDH进行停机升级 3.如何在不影响集群作业的情况...

Hadoop实操
今天
1
0
vue2中引用 better-scroll的方法

文章主要介绍了vue2中引用better-scroll和使用 better-scroll的方法,使用时有三个要点及注意事项在文中给大家详细介绍 ,需要的朋友可以参考下 使用时有三个要点: 一:html部分 <div class...

前端攻城老湿
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部