文档章节

Android学习笔记09:Paint及Canvas的简单应用

C
 Carl_
发布于 2015/01/07 11:11
字数 526
阅读 188
收藏 1

Android学习笔记09:Paint及Canvas的简单应用

  在Android中需要通过graphics类来显示2D图形。

  graphics中包括了Canvas(画布)、Paint(画笔)、Color(颜色)、Bitmap(图像)等常用的类。graphics具有绘制点、线、颜色、2D几何图形、图像处理等功能。

  1.Color(颜色)类

  Android系统中颜色的常用表示方法有以下3种:

  (1)int color = Color.BLUE;

  (2)int color = Color.argb(150,200,0,100);

  (3)在xml文件中定义颜色;

  在实际应用当中,我们常用的颜色有以下一些,其颜色常量及其表示的颜色如下所示:

  Color.BLACK      黑色                                       Color.GREEN                  绿色

  Color.BLUE        蓝色                                       Color.LTGRAY                浅灰色

  Color.CYAN       青绿色                                     Color.MAGENTA              红紫色

  Color.DKGRAY    灰黑色                                    Color.RED                      红色

  Color.YELLOW    黄色                                       Color.TRANSPARENT       透明

  Color.GRAY        灰色                                       Color.WHITE                  白色

   2.Paint(画笔)类

   要绘制图形,首先得调整画笔,按照自己的开发需要设置画笔的相关属性。Pain类的常用属性设置方法如下:

  setAntiAlias();            //设置画笔的锯齿效果

  setColor();                 //设置画笔的颜色

  setARGB();                 //设置画笔的A、R、G、B值

  setAlpha();                 //设置画笔的Alpha值

  setTextSize();             //设置字体的尺寸

  setStyle();                  //设置画笔的风格(空心或实心)

  setStrokeWidth();        //设置空心边框的宽度

  getColor();                  //获取画笔的颜色

  3.Canvas(画布)类

  画笔属性设置好之后,还需要将图像绘制到画布上。Canvas类可以用来实现各种图形的绘制工作,如绘制直线、矩形、圆等等。Canvas绘制常用图形的方法如下:

  绘制直线:canvas.drawLine(float startX, float startY, float stopX, float stopY, Paint paint);

  绘制矩形:canvas.drawRect(float left, float top, float right, float bottom, Paint paint);

  绘制圆形:canvas.drawCircle(float cx, float cy, float radius, Paint paint);

  绘制字符:canvas.drawText(String text, float x, float y, Paint paint);

  绘制图形:canvas.drawBirmap(Bitmap bitmap, float left, float top, Paint paint);

  4.自定义View的基本实现方法

  首先,我们需要自定义一个类,比如MyView,继承于View类。然后,复写View类的onDraw()函数。最后,在onDraw()函数中使用Paint和Canvas对象绘制我们需要的图形。


本文转载自:http://www.cnblogs.com/menlsh/archive/2012/11/18/2776003.html

C
粉丝 42
博文 387
码字总数 12168
作品 0
广州
私信 提问
加载中

评论(0)

J2ME移植到ophone

中国拥有世界最庞大的电信客户群,仅移动用户就达7亿,3G在中国有最大的市场做后盾,无论现在的市场发展如何的困难,3G费用的降低是大势所趋,不久的将来,必然形成巨大的3G浪潮,3G手机会如...

长平狐
2012/08/29
63
0
Android特色开发之Google Map和桌面组件

本文节选于机械工业出版社推出的《Android应用开发揭秘》一书,作者为杨丰盛。本书内容全面,详细讲解了Android框架、Android组件、用户界面开发、游戏开发、数据存储、多媒体开发和网络开发...

鉴客
2011/12/01
2.1K
0
Android源码之动态壁纸引擎

动态壁纸蛮好玩的,也没接触过,看官方有就拿了学习下,是第一次接触引擎Engine,激动兴奋...效果做出来了,记录笔记,吼吼,跟大家交流学习, 废话不多说了,先看效果,再看源码,供大家交流...

长平狐
2012/08/14
419
0
Android源码之动态壁纸引擎

动态壁纸蛮好玩的,也没接触过,看官方有就拿了学习下,是第一次接触引擎Engine,激动兴奋...效果做出来了,记录笔记,吼吼,跟大家交流学习, 废话不多说了,先看效果,再看源码,供大家交流...

长平狐
2012/08/09
2.1K
0
创想汇【大牛面对面】——Android GUI系统高阶培训

这个八月 来自北京opera技术大咖将带你一起“修行”, 练就“火眼金睛”破解Android图形的百般变化, 传授“72变”帮你轻松应对各种bug事件, 来吧程序猿们! 来取属于你的定海神针!!! 组...

喵一喵
2015/07/31
14
0

没有更多内容

加载失败,请刷新页面

加载更多

技术分享 | MySQL 字段长度限制的计算方法

作者:kay 擅长 Oracle、MySQL、PostgresSQL 等多种数据库领域 擅长 Oracle、MySQL 性能优化、数据库架构设计、数据库故障修复、数据迁移以及恢复 热衷于研究 MySQL 数据库内核源码、分享技术...

爱可生
29分钟前
52
0
向JavaScript Date对象添加小时?

令我惊讶的是,JavaScript的Date对象没有实现任何类型的add函数。 我只是想要一个可以做到这一点的函数: var now = Date.now();var fourHoursLater = now.addHours(4);function Date.pro...

技术盛宴
32分钟前
64
0
学习02-css(动画的制作,浏览器私有前缀,meta视口标签,背景缩放)

css动画 1.先定义动画,用keyframes定义动画(类似定义类选择器) @keyframes 动画名称 { 0% { width: 100px; } 100% { ...

宋_
33分钟前
72
0
设计模式之模板模式

优势 隔离逻辑,避免使用if-else,结构清晰 如何实现 一个抽象父类,定义好各流程方法,然后串联总流程 多个实现子类,实现各自的流程方法。 使用的时候只需要调用串联总流的方法即可 场景 ...

Lubby
36分钟前
65
0
创龙基于TI AM5728浮点双DSP C66x +双ARM Cortex-A15工业控制及高性能音视频处理器、FLASH、RAM

TL5728-IDK是一款广州创龙基于SOM-TL5728核心板设计的开发板,底板采用沉金无铅工艺的4层板设计,它为用户提供了SOM-TL5728核心板的测试平台,用于快速评估SOM-TL5728核心板的整体性能。 处理...

Tronlong创龙
39分钟前
55
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部