Android移动终端开发大作业.doc
《Android移动终端开发大作业.doc》由会员分享,可在线阅读,更多相关《Android移动终端开发大作业.doc(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-作者xxxx-日期xxxxAndroid移动终端开发大作业【精品文档】Android移动终端开发大作业一、 作业要求l 1人一组,独立完成。l 按照个人兴趣方向,自选题目,完成系统。l 在规定的时间里完成系统主体功能,程序比较稳定的运行。l 手机界面要求简洁、美观,功能不能过于简单,应具备一定的实用性。l 至少要3个Activity以上。l 必须使用自定义Listview,要使用Sqlite数据库或API调用与数据解析(API可使用聚合数据( Store(l 欢迎好的创意作品、实用作品,评分时会适当加分。l 需提交设计报告,设计报告格式见附件,按附件顺序装订(包括评分表)l 大作业成绩从工作
2、量、功能点、创新性、实用性、报告的字数、质量及规范度等方面的成绩构成二、 注意事项l 压缩包内作业内容包括两部分: 作业项目文件夹,项目必须能够调试通过,android平台选择选择2.2或是2.3.3。 作业设计说明,word文件。l 可以借鉴网络上的代码,但不可全部照搬。不许相互抄袭,一旦发现成绩为零。附件1:学 号成 绩Android平台移动应用开发大 作 业题 目基于Android的新闻浏览软件的设计与实现学 院信息工程学院专 业信息工程班 级信息1303姓 名杏允升指导教师秦珀石2015年12月10日一、 3二、 概述4三、 关键技术5四、 概要设计6五、 系统实现7六、 心得体会8一
3、、 概述Android应用平台新闻客户端软件是基于Android手机平台,采用Java语言,从网络上的开放的新闻接口获取数据,设计出针对使用Android平台的手机新闻客户端资讯实时掌控的手机应用程序。 Android平台新闻客户端软件的开发可以进一步扩大时事新闻的覆盖面,让广大公众能够随时随地方便且快捷地获取最新的新闻资讯信息,了解新闻时事,本软件的广泛使用,尤其是在传授知识、普及教育方面起着非常重要的作用。目前市场研究机构Worldpanel发布了全球主要的国家智能手机操作系统在去年Q4内的分布报告,报告指出了谷歌的Android继续保持着增长的势态,但是增幅已经明显放缓了。而在另一个方面
4、,苹果iOS操作系统在全球只能手机市场上均有下滑,个别国家的降幅甚至高达10.3%。最新统计数据中显示,Android操作系统将继续领跑全球市场,包括美国、澳大利亚、中国、意大利、英国、德国、西班牙等所占的市场比例都已经超出50%,并且还将继续呈现上涨的趋势。而在苹果iOS操作系统方面,最大的市场份额所占比的国家依旧是美国,数值为43.9%;紧随美国的则是澳大利亚,数值为35.2%;而在中国方面,市场份额也从21.2%下降到了19%;在意大利,iOS所占的市场份额更是从23.1%猛降至12.8%。从上面的数据可以看出,Android手机软件的开发具有巨大的发展前景,在Android系统上开发出
5、一款手机新闻客户端软件所支持的用户量也是相比较于其他系统多出很多的。谷歌的移动平台主管安迪鲁宾(AndyRubin)表示,跟软件开发合作对象的密切接触正在进行中。Google与开放手机联盟联合开发了Android操作系统,这个联盟由摩托罗拉、高通、宏达电、中国移动和T-Mobile等在内的多家无线应用和技术的领军企业组成。Google通过与设备制造商、开发商、运营商和其他有关各方结成深层次的合作关系,希望借助建立开放式、标准化的移动移动电话软件平台,在移动产业内形成一个开放性的生态系统,这将是开发Android软件的一个契机,Android平台的开发在将来必定大放异彩。二、 关键技术1) 使用
6、ViewPager里面添加多张图片配合线程延时实现轮播图的自没有通过ScheduledExecutorService或Timer定期执行某个任务实现,而是简单的通过handler发送消息去完成一次滚动,在完成一次滚动后发送另外一个delay的滚动消息,如此循环实现。自动滚动部分核心代码如下:至于ViewPager嵌套引起子ViewPager无法触摸问题是通过在子ViewPager的onTouchEvent中添加禁止父控件对touch event做intercept解决的。ViewPager滑动速度的设置是通过反射的方式重新设置ViewPager的Scroller,改变Scroller的star
7、tScroll的间隔时间完成的。调用setScrollDurationFactor(double)即可。2、使用(1) 引入公共库引入Android Auto Scroll ViewPagerGithub作为你项目的library(如何拉取代码及添加公共库)。(2) 调用仅需简单两步:a. 布局定义代替一般的ViewPager定义 b. 启动ViewPager自动滚动startAutoScroll() 启动自动滚动stopAutoScroll() 停止自动滚动3、设置setInterval(long) 设置自动滚动的间隔时间,单位为毫秒setDirection(int) 设置自动滚动的方向,默
8、认向右setCycle(boolean) 是否自动循环轮播,默认为truesetScrollDurationFactor(double) 设置ViewPager滑动动画间隔时间的倍率,达到减慢动画或改变动画速度的效果setStopScrollWhenTouch(boolean) 当手指碰到ViewPager时是否停止自动滚动,默认为truesetSlideBorderMode(int) 滑动到第一个或最后一个Item的处理方式,支持没有任何操作、轮播以及传递到父View三种模式setBorderAnimation(boolean) 设置循环滚动时滑动到从边缘滚动到下一个是否需要动画,默认为tr
9、ue4、其他(1) 指示器,圆形或是方形指示器请配合ViewPagerIndicator使用(2)无限循环,如果希望在最后一张继续播放第一张而不是退回到第一张,请参考AutoScrollViewPagerSingleDemo.java,注意这个特性不能和 ViewPagerIndicator 使用2)使用viewpager结合ViewPageIndicator进行新闻类别的分类切换,可点击切换也可以滑动切换。1. ViewPager Indicator的Library查看Viewpager Indicator的Library代码,可以看到此项目的设计思想:首先定义了一个PageIndicato
10、r接口,它里面定义了最重要和基本的indicator表现出的一些方法: 1.1 首先一个indicator必须要与一个ViewPager关联在一起,所以它提供了一个setViewPager方法。 1.2 它扩展了ViewPager.OnPageChangeListener接口,表示接管了ViewPager的Pager改变时的监听处理, 这也是为什么为ViewPager设置OnPageChangeListener监听器时不能设置在ViewPager上而必须设置在 indicator上的原因。 1.3 还有一个notifyDataSetChanged通知方法,表示为这个ViewPager提供Vie
11、w(一般是Fragment)的 Adapter 里面的数据集发生变化时,执行的动作,这里可增加相关的逻辑。2. Viewpager Indicator的实现类然后再看下Viewpager Indicator的实现类,共有6个,由6个类分别实现,它们分别为: 2.1 小圆圈类型的 2.2 带图标类型的 2.3 小横线类型的,距离屏幕最下边端有一定的距离。 2.4 标签类型的(Tab) 2.5 标题类型的,与标签类型的有点像,但它当前的标题页的左/右边的标题会卷起,即往两端缩进去。 2.6 屏幕底部小横线类型的,并且会占满整行。 3. Viewpager Indicator随附带的Demo Dem
12、o项目的设计 项目由一个ListSamples的ListActivity入口,它主要用作组装所有的子indicator的列表。 TestFragment.java,所有ViewPager上真正显示的视图。 TestFragmentAdapter.java,所有ViewPager里的Adapter,为ViewPager生成TestFragment。 Samplexxx.java,所有的indicator的显示,一个类显示一种使用方法或特性2)使用viewpager结合ViewPageIndicator进行新闻类别的分类切换,可点击切换也可以滑动切换。3)使用Gson对新闻数据的json字符串进行
13、解析显示到listview上需要使用jar包fastjson或gson这两个jar包。/Gson的使用方式Gson gson=newGson();String str=ReadAssetsFile.readtext(this,json_ss);/this当前类,json_ss需要解析的文件名 UserMessage userMessage=gson.fromJson(str,UserMessage.class);/需要解析的json文件最外层类名 /fastjson的使用方法 String json=ReadAssetsFile.readtxt(this,json_h); UserMessag
14、e user = JSON.parseObject(json,UserMessage.class);自己扩展4)使用Universal-Image-Loader对图片进行缓存加载Android上最让人头疼的莫过于从网络获取图片、显示、回收,任何一个环节有问题都可能直接OOM,这个项目或许能帮到你。Universal Image Loader for Android的目的是为了实现异步的网络图片加载、缓存及显示,支持多线程异步加载。它最初来源于Fedor Vlasov的项目,且自此之后,经过大规模的重构和改进。特性列举:多线程下载图片,图片可以来源于网络,文件系统,项目文件夹assets中以及d
15、rawable中等支持随意的配置ImageLoader,例如线程池,图片下载器,内存缓存策略,硬盘缓存策略,图片显示选项以及其他的一些配置支持图片的内存缓存,文件系统缓存或者SD卡缓存支持图片下载过程的监听根据控件(ImageView)的大小对Bitmap进行裁剪,减少Bitmap占用过多的内存较好的控制图片的加载过程,例如暂停图片加载,重新开始加载图片,一般使用在ListView,GridView中,滑动过程中暂停加载图片,停止滑动的时候去加载图片提供在较慢的网络下对图片进行加载使用过程:创建默认的ImageLoader,所有的操作都由ImageLoader控制。该类使用单例设计模式,所以如
16、果要获取该类的实力,需要调用getInstance()方法。在使用ImageLoader显示图片之前,你首先要初始化它的配置,调用ImageLoaderConfiguration的init()方法,然后你就可以实现各种的显示了。得到imageLoader使用过程:(1) 图像操作是否参与缓存以及图像效果的配置操作DisplayImageOptions以下是所有默认配置参数根据需求可以自定义配置(2)图片加载监听器在这里吧可以设置加载时的动画或者进度条之类的东西这里(3)简单设置就可以给ImageView添加图片了对于本地的图片 ,在其绝对地址前面要加入file:/。网络图片就直接写路径了。缓存
17、的清理:缓存的清理可以按需求来定,可以再每个Activity的生命周期函数onDestroy中清理也可以单独设置让用户自行清理。GirdView,ListView加载图片:相信大部分人都是使用GridView,ListView来显示大量的图片,而当我们快速滑动GridView,ListView,我们希望能停止图片的加载,而在GridView,ListView停止滑动的时候加载当前界面的图片,这个框架当然也提供这个功能,使用起来也很简单,它提供了PauseOnScrollListener这个类来控制ListView,GridView滑动过程中停止去加载图片,该类使用的是代理模式第一个参数就是我们
18、的图片加载对象ImageLoader, 第二个是控制是否在滑动过程中暂停加载图片,如果需要暂停传true就行了,第三个参数控制猛的滑动界面的时候图片是否加载概要设计Json数据的一些返回参数名称类型说明 error_codeint返回码 reasonstring返回说明 resultstring返回结果集 titlestring新闻标题 contentstring新闻摘要内容 img_widthstring图片宽度 full_titlestring完整标题 pdatestring发布时间 srcstring新闻来源 img_lengthstring图片高度 imgstring图片链接 urls
19、tring新闻链接 pdate_srcstring发布完整时间三、系统实现代码1:package com.name.xinwen;import com.thinkland.sdk.android.JuheSDKInitializer;import android.app.Application;text;import android.os.Handler;import android.os.Looper;/* * 应用程序的入口 */public class BaseApplication extends Application private static Context mContext;
20、private static Thread mMainThread;private static int mMainThreadId;private static Handler mMainThreadHandler;private static Looper mMainThreadLooper;Overridepublic void onCreate() super.onCreate();JuheSDKInitializer.initialize(getApplicationContext();/在应用程序入口提供全局的工具/上下文mContext = this;/主线程和子线程mMainT
21、hread = Thread.currentThread();/mMainThreadId = mMainThread.getId();/当前应用程序进程ID/mMainThreadId = android.os.Process.myPid();/ 线程id myTid();mMainThreadId = android.os.Process.myTid();/用户id myUid();/主线程handlermMainThreadHandler = new Handler();mMainThreadLooper = getMainLooper();public static Context g
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 移动 终端 开发 作业
限制150内