- 18
- 0
- 约9.93千字
- 约 20页
- 2017-05-12 发布于河南
- 举报
Android应用开发——实验四
阅读文献《Android应用开发揭秘》第五章,运行实例程序,分析程序代码,学习使用View类开发框架;
运行SurfaceView类的实例程序,分析程序代码,熟悉使用SurfaceView类开发框架;
运行Graphics类的实例程序,分析程序代码,熟悉使用Paint类、Color类、Canvas类,学习几何图形的绘制、字符串绘制、图像绘制、图像旋转、图像缩放等方法,学习对图像像素的操作;
运行实例程序,分析程序代码,学习使用Shader类、双缓冲技术、全屏显示等技术;
运行动画实例程序,分析程序代码,学习使用Tween动画、Frame动画、GIF动画播放等技术。
实验报告要求
写出自己所做实验的步骤和内容;
记录实验过程中发现的问题以及解决问题的方法;
给出程序运行过程中主要页面的截图;
提交文件包括:实验报告、源代码、可运行的安装程序,所有文件打包压缩;
压缩包命名格式:班级号+学号+姓名+训练4.rar
实验四
姓名:马征 学号:2011303502 班级阅读第五章运行示例程序学习View类开发框架
分析:该示例中,我们通过实例化Handler对象并重写handleMessage方法实现了一个消息接收器,然后在线程中通过sendMessage方法发送更新界面的消息,当接收器收到更新界面的消息是,执行invalidate方法更新屏幕显示。
以上主要用来绘制主界面,接下来是控制整个应用的操作,比如世界处理,更新频率,相对的需要实现一个Activity类。
体会:在Android中虽然提供了invalidate方法来实现界面刷新,但是invalidate不能直接在线程中调用,因为违背了单线程模型,AndroidUI操作并不是线程安全的,并且这些操作必须在UI线程中执行,因此Android中最常用的方法是利用Handler来实现UI线程的更新。
示例中提供的View类来作为游戏的开发框架,然而当需要开发更加复杂的游戏,并且对程序的执行效率要求很高时,View类就不能满足需求,这个时候我们需要学习SurfaceView类。
SurfaceView类开发框架
当游戏的需求较高的时候,可以使用双缓冲来显示,游戏中的背景、人物、动画等都需要绘制在一个画布上,而SurfaceView可以直接访问一个画布,SurfaceView是提供给需要直接画像素而不是使用窗体部件的应用使用的,Android图形系统中的一个重要概念是Surface,View及其子类要画在Surface上,每个Surface创建一个Canvas对象,用来管理View在Surface上的绘图操作。
SurfaceView在开发时一般都是出现在最顶层,使用时还需要对其惊醒创建、销毁,情况改变的时候进行监视,需要实现SurfaceHolder.Callback接口,需要对被绘制的画布进行裁剪,控制其大小的时候都需要使用SurfaceHolder来完成处理。SurfaceHolder对象需要通过getHolder方法来获得,同事还需要addCallback方法来添加“回调函数”。
总结:
surfaceChanged 在Surface的大小发生改变时激发 SurfaceCreated 在创建Surface时激发 surfaceDestroyed 在销毁Surface时激发 addCallback 给SurfaceView添加一个回调函数 lockCanvas 锁定画布,绘图之前必须锁定画布才能得到当前画布对象 UnlockCanvasAndPost 开始绘制时,锁定了画布,绘制完成之后解锁画布 removeCallback 从SurfaceView中移除回调函数
分析:这个示例中,控制整个应用流程的Activity类和上一节差不多,首先需要控制循环。
在开始定义SurfaceHolder,然后对SurfaceHolder实例化,添加回调;根据上个总结的表格,Surfacc的大小发生改变的时候激发surfaceChanged
Graphics类开发
开发游戏,必须在屏幕上绘制2D图形,而在Android中需要通过graphics类显示2D图形,graphics中包括了Canvas、Paint、Color、Bitmap、2D几何图形等常用类。可以绘制点、线、颜色、图像处理、2D几何图形等功能。
Paint和Color类
Paint类中定义了很多的效果,根据文档,列出效果如下:
SetAntiAlias 设置画笔的锯齿效果 setColor 设置画笔的颜色 SetARGB 设置画笔的a r p g 值 setAlpha 设置Alpha值 setTextSize 设置字体尺寸 setStyle 设置画笔风格,空心或者
您可能关注的文档
- 2012年信息科技学业水平考试(第3套).doc
- 2012年计算机一级MsOffice第三套选择题精选及答案详解.doc
- 2012年江苏高中信息技术学业水平测试vb操作题带答案.doc
- 2012计算机一级word2003单选题第二部分.doc
- 2012高中数学人教版教案:§1.1.2《程序框图》[来源:学优高考网750gk].doc
- 2013-2014上期年九级数学期末专题复习:一元二次方程专题复习(Word版.含解析、点评和练习).doc
- 2013.03vb综合题大纲1.doc
- 2013《河北教育》教学版小学语文课内阅读答案(5.25).doc
- 2013VC++期末复习材料.doc
- 2012年浙江三项考试技术试题图片质量好.doc
原创力文档

文档评论(0)