《Android模块化项目实战》05 健康助手写字字帖_第1页
《Android模块化项目实战》05 健康助手写字字帖_第2页
《Android模块化项目实战》05 健康助手写字字帖_第3页
《Android模块化项目实战》05 健康助手写字字帖_第4页
《Android模块化项目实战》05 健康助手写字字帖_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目五健康助手学习目标通过U酒保项目健康助手模块的实现,学习折线图的构建方法,了解图片下沉动画的使用方法,掌握如何使用AsyncTask类实现更新UI,在任务实现过程中:了解ViewGroup和View区别掌握自定义控件的使用掌握自定义动画的使用掌握AsyncTask类的使用任务路径情景导入U酒保研发团队根据用户的需求设计并开发了酒精数据统计功能,可将历史酒精浓度值以折线图的方式展示,方便用户再次使用时进行查询比对。该软件还设有娱乐模块、微博模块、笑话模块用来丰富业余生活。本项目通过数据监测模块的实现,讲解了折线图以及自定义控件的使用方法。自定义组件Android中所有的UI类都以View和ViewGroup为基础

。其中View是与用户交互控件的父类,在项目开发过程中,具有重要作用,主要用于在界面中获取矩形区域,完整的实现自定义组件。ViewGroup是存放View的容器,主要用于管理其包含的View控件。View类中提供了多种方法用来构建自定义组件。

自定义组件简介View定义了完整的绘图基本操作,用于自定义组件的构建,在构建过程中,需重写onMeasure()、onLayout()、onDraw()方法。onMeasure()的用法。绘制View前使用onMeasure()调用setMeasuredDimension()方法对其进行测量。onLayout()的用法。onLayout()主要根据View在Measure()中测量的大小决定其摆放位置。自定义组件方法自定义组件onDraw()的用法。Canvas为系统提供一块内存区域,所有绘制都在该内存中进行,绘制完成后系统将布局显示到屏幕中。该Canvas对象提供各种绘制点、线、矩形、圆、位图的方法,基本可满足各种绘制要求。onDraw()主要是用来把所有View都绘制在同一个画布上,达到将canvas内容显示屏幕上。在绘制自定义组件时先调用onDraw()方法后调用Draw()方法实现。自定义组件方法自定义组件Animation提供了一系列的动画效果的API,具有渐变透明度动画效果(alph),渐变尺寸伸缩动画效果(scale),画面转换位置移动动画效果(translate),画面转移旋转动画效果(rotate)等四种动画效果。Animation动画简介自定义动画Animation通过对View完成一系列图形变换,实现动画效果。定义一组指令,指令指定图形变换类型、触发时间、持续时间。指令可以是以XML文件方式定义,也可以是以源代码方式定义。程序沿时间线执行指令便可实现动画效果。Animation方法自定义动画(1)XML动画Animation从总体上可以分为三类:TweenedAnimation(补间动画),补间动画方式如表5.3所示。Animation方法自定义动画FrameAnimation(逐帧动画),逐帧动画方法如表5.4所示。Animation方法自定义动画PropertyAnimation(属性动画),该类Animation与补间动画相似,属性动画属性如表5.5所示。Animation方法自定义动画(2)自定义动画Android中的图形绘制需要继承View组件,并且重写它的onDraw(Canvascanvas)方法。重写onDraw(Canvascanvas)方法时涉及绘图API:Canvas,Canvas代表“依附”于指定的View画布。Animation方法自定义动画自定义动画实现步骤如下所示:自定义View的派生类AnimatorView,调用图形数据,并设置画笔及其风格。在派生类AnimatorView中定义待绘制的图形数据(宽度、间距、速度、颜色、次数)。通过重载onDraw()方法,设置画笔、坐标位置,实现矩形方块的绘制。在MainActivity中遍历AnimatorView类,展示该动画展示在界面。通过以上步骤实现如图5.7自定义动画效果。Animation方法自定义动画AsyncTask是Android提供的轻量级异步类,可直接继承AsyncTask在类中实现异步操作,并提供接口反馈当前异步执行程度(可以通过接口实现UI进度更新),然后反馈执行结果传递到UI主线程。AsyncTask是封装后的后台任务类,具有结构清晰、功能定义明确,对于多个后台任务时,具有简单,清晰等特点。AsyncTask简介异步类AsyncTask抽象出后台线程运行的五个状态,并提供了五个回调函数:onPreExecute():该回调函数在任务被执行后立即由UI线程调用。该步骤用来建立任务,在用户接口(UI)上显示进度条(准备运行)AsyncTask类方法异步类doInBackground(Params...):该回调函数由后台线程在onPreExecute()方法执行结束后立即调用。在这里执行耗时的后台计算。计算的结果必须由该函数返回,并被传递到onPostExecute()中。在该函数内也可以使用publishProgress(Progress...)来发布一个或多个进度单位(unitsofprogress)。这些值将会在onProgressUpdate(Progress...)中被发布到UI线程(后台运行)AsyncTask类方法异步类onProgressUpdate(Progress...):该函数由UI线程在publishProgress(Progress...)方法调用完后被调用。一般用于动态显示一个进度条(进度更新)onPostExecute(Result):当后台计算结束后调用。后台计算的结果会被作为参数传递给这一函数(完成后台任务)onCancelled():在调用AsyncTask的cancel()方法时调用(取消任务)AsyncTask类方法异步类实现进倒计时的功能。时长5s,当时间结束时在界面显示结束时间并提醒用户倒计时结束,效果如图5.8、图5.9所示。使用AsyncTask类示例异步类实现倒计时功能步骤如下所示:(1)初始化界面,点击“开始”按钮,调用异步类开始倒计时。(2)构建AsyncTask方法。(3)TestAsyncTask被后台线程执行后,UI线程被调用,一般用于初始化界面控件。(4)调用doInBackground()方法进行数据的实时获取并将数据进行返回。(5)将doInBackground()方法中返回的数据显示到界面,进行UI的实时更新。(6)运行项目,实现图5.8、图5.9所示效果。使用AsyncTask类示例异步类通过如下步骤实现如图5.2所示U酒保健康助手模块。第一步:在Androidstudio中创建一个Android工程,命名为“UJB_AIFragment”。第二步:导入实现折线图MPChartLib.jar,具体步骤如下所示。(1)复制MPChartLib.jar包,添加到如图5.11所示目录下。使用AsyncTask类示例任务实施(2)选择该项目,右击鼠标出现如图5.12所示界面,点击“OpenModuleSettings”,跳转到下一界面,选择appDependencise。(3)单击“+”显示选择栏,如图5.14所示。选择Filedependency,跳转到下一界面,选择添加的jar包后点击“OK”。第三步:使用onDraw()方法,新建MyImageView.java自定义矩形图片区域,用于放置笑话、娱乐、科普等图片。第四步:实现自定义界面布局,调用MPChartLib.jar包与MyImageView.java显示矩形图片框和折线图界面fragment_advise.xml。使用AsyncTask类示例任务实施第五步:获取酒精数据Json串并解析,设置折线图属性,并将解析的酒精浓度数据添加到折线图中进行显示。第六步:使用OnClick()方法设置图片点击跳转事件,点击界面中科普、笑话、娱乐等图片,实现对应界面的跳转。第七步:使用onTouchEvent()方法实现图片触摸事件,当用户触摸图片边缘或中心时,实现图片对应部位的下沉效果。第八步:点击科普按钮,跳转到科普界面通过异步类获取科普信息,并显示到界面。第九步:运行程序,运行结果如图5.2所示。使用AsyncTask类示例任务实施本项目主要介绍了U酒保健康助手模块的实现。通过自定义组件、自定义动画,实现折线图和图片下沉效果,采用异步请求获取网络数据,并更新UI。在项目学习过程中可以了解自定义组件和自定义动画的使用方法,掌握异步类的使用原理。任务总结measure测量layout布局draw绘制

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论