android5从入门到精通绘图.pptx

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第十章绘图

;10.12D绘图;10.1.1获取Canvas对象

要在Android系统下绘制图形,需要四个基本组件,分别为:

Bitmap:相当于画布,用于管理像素。

Canvas:相当于在在Bitmap上绘图的画家,用于管理绘制过程,提供绘图方法。

Drawable绘制要素:Drawable绘制要素包括形状、路径、文本,图像等,用于将Canvas绘制的图像显示给用户。

Paint:相当于绘图用到画笔,可以设置画笔的颜色、类型等。

若在自定义的View组件上绘制图像,只需重写onDraw()方法即可。;10.1.2使用自定义View绘图

实例MyViewCanvasDemo自定义了一个名为MyView的View类,并在其onDraw()方法中绘制了简单的图像,运行效果如图10.1所示。

图10.1简单View绘图

;10.1.3使用Bitmap绘图

可以通过新建Bitmap对象,并在其上使用Canvas进行绘图的方式创建图像。实例BitmapDrawDemo演示了Canvas使用Bitmap对象绘图的过程。该实例的绘制内容与10.1.2节实例的绘制内容完全相同,只不过不是直接绘制在View上,而是绘制在一个Bitmap对象上,绘制完成后,将Bitmap图像显示到视图上,其运行效果如图10.2所示。

图10.2Bitmap对象的绘图效果

;10.1.4使用SurfaceView绘制静态图像

使用SurfaceView绘图,需要为SurfaceView对象添加SurfaceHoloder.Callback接口,并在该接口的surfaceCreated()方法中通过lockCanvas()方法获取Canvas对象,以此保证当获取Canvas时,SurfaceView对象可用。当绘图工作完成后,通过SurfaceHoloder.unlockCanvas-AndPost()方法将绘图显示出来,并释放Canvas对象。

实例SurfaceViewDrawDemo演示了使用SurfaceView组件绘制静态图的过程,其绘制内容与10.1.2节绘制内容完全相同。通过该实例,读者可以清楚地认识到使用SurfaceView绘图与使用View绘图的不同之处,该实例运行效果如图10.3所示。

图10.3SurfaceView绘图效果

;10.1.5使用SurfaceView绘制动态图像

实例SurfaceViewDrawDemo绘制的是一幅静态图像,而使用SurfaceView绘图的优点在于绘制动态图像。绘制静态图像的过程应该在一个单独的线程中完成,而不应该在主线程中进行。实例SurfaceViewDynDrawDemo演示了使用SurfaceView组件绘制动态图像的过程。该实例修改自AndroidSDK提供的实例,绘制的是类似于Windows中的变幻线屏保的效果,运行效果如图10.4所示。

图10.4实例SurfaceViewDynDrawDemo运行效果

;10.2Drawable

;10.2.2从XML文件中创建Drawable对象

10.2.3使用构造方法创建Drawable对象

以ShapeDrawable为例,ShapeDrawable是Drawable的子类,ShapeDrawable对象适合于动态绘制二维图形。;10.33D绘图

;管理Surface,Surface是一块内存,可以被加载到View视图中。

管理一个EGL显示,能够使用OpenGL把内容渲染到surface上。

接受用户自定义渲染器用于实际渲染。

使渲染器在单独的线程总运行,和更新UI的线程相分离。

支持按需渲染(on-demandrendering)和连续渲染(continuousrendering)。

提供一些可选工具,如OpenGL调用的跟踪调试和错误检查等。

(2)GLSurfaceView.Renderer接口

GLSurfaceView.Renderer接口定义了使用OpenGL绘图时所需的方法。该接口通过GLSurfaceView.setRenderer()与GLSurfaceView关联在一起。

该接口实现以下三个方法:

onSurfaceCreated():当创建GLSurfaceView对象后该方法被系统调用一次。通常在该方法中设置OpenGL环境的相关参数,初始化OpenGL图形对象等。

onDrawFrame():GLSurfaceView对象每一次重绘时系统都会调用该方法。该方法应该执行具体的绘图工作。

onSurfaceChanged():当GLSurfaceView对象的几何外形改变时,包括GLSurfaceView的尺寸发生改

文档评论(0)

136****1820 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档