- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2D绘图
这部分在书的第4章第1节,使用了android.graphics包中提供的二维图形库。在这个包中有几个基本的类,它们是:
?
1. Color类
?? ? ?Android中的颜色用四个数字表示,透明度、红、绿、蓝(ARGB)各占一个数字。每个数字8bit(0-255)。Alpha值为0时完全透明。为了提高效率,Android代码使用整数而不是Color类的实例来表示颜色。
?
创建color对象的方法:(需要import android.graphics.Color;)
(1)使用静态常量:
?? ? ? ?int color = Color.BLUE;
(2)使用静态工厂(已知ARGB值):
?? ? ? ?int color = Color.argb(A, R, G, B);
(3)使用XML资源文件:
?? ? ? ?定义颜色:
?? ? ? ??xml version=1.0 encoding=utf-8?
?? ? ? ?resources
?? ? ? ? ? ? color name=mycolor#7fff00ff/color
?? ? ? ?/resources
?? ? ? ?在Java代码中调用:
?? ? ? ?int color = getResource().getColor(R.color.mycolor);//返回mycolor的资源ID
?
2. Paint类
?? ? ?Paint类包含图形的样式、颜色以及绘制任何图形(包括位图、文本和几何图形)所需的其他信息。例如使用某种颜色在屏幕上绘图:
?? ? ???import android.graphics.Color;
?? ? ? ?import android.graphics.Paint;
?? ? ? ?...
?? ? ? ?Paint cPaint = new Paint();//构造Paint实例
?? ? ? ?cPaint.setColor(Color.BLUE);//使用蓝色绘图
?? ? ? ?...
?
3. Canvas类
?? ? ?Canvas意为“帆布”,这里我们可以理解为绘图所用的画布。使用Canvas类提供的各种方法可以在画布上绘制线条、举行、圆以及其他可绘制图形。在Android中,屏幕是由Activity类的对象支配的,Activity类的对象引用View类的对象,而View类的对象又引用Canvas类的对象。通过重写View.onDraw()方法,可以在制定的画布上绘图。onDraw()方法唯一的参数就是制定在那个Canvas实例上绘图。
?? ? ?下面是一个重写onDraw()方法的例子。
?
?? ? ???import android.app.Activity;
?? ? ???import android.os.Bundle;
?? ? ???import android.view.*;
?? ? ???import android.content.*;
?? ? ???import android.graphics.Canvas;
?
?? ? ???public class Hello extends Activity {
?? ? ????? ?@Override
?? ? ????? ?public void onCreate(Bundle savedInstanceState) {
?? ? ????? ? ? ?super.onCreate(savedInstanceState);
??? ? ???? ? ? ?setContentView(new GraphicsView(this));
?? ? ????? ?}
?
??? ? ???? ?static public class GraphicsView extends View {
???? ? ?????????public GraphicsView(Context context) {
??? ? ???? ?????? ??super(context);
???? ? ??????? ??? ?Canvas canvas1 = new Canvas();//新建一个画布
?? ? ???????? ??? ??onDraw(canvas1);//在画布canvas1上绘制
?? ? ???????? ??? ??setBackgroundResource(R.drawable.background);//添加XML渐变背景
?? ??? ? ???? ??}
?
?? ? ????? ??? ?@Override
?
?? ? ????? ??? ?public void onDraw(Canvas canva
您可能关注的文档
最近下载
- 《2023年甘肃省职业院校技能大赛职业英语技能赛项职业英语能力测试模块试题口语决赛样题》.pdf
- 建筑工程建筑面积计算规范GBT50353-2022[13].pdf
- JB/T 9628-1999 汽轮机叶片 磁粉探伤方法.pdf
- 0i-TF PLUS车床操作说明书.pdf
- 陈传明管理学笔记1.马工程——总论.pdf
- 06J925-2 压型钢板、夹芯板屋面及墙体建筑构造(二).docx VIP
- 《高速公路基础设施数字化建设数据标准》.pdf VIP
- 计算机组装与维护 知识点整理.pdf VIP
- 《员工满意度研究国内外文献综述》3900字.docx VIP
- 勤俭节约主题班会 主题班会.ppt VIP
文档评论(0)