首页 Android移动终端开发大作业

Android移动终端开发大作业

举报
开通vip

Android移动终端开发大作业Lastupdatedat10:00amon25thDecember2020Android移动终端开发大作业Android移动终端开发大作业作业要求1人一组,独立完成。按照个人兴趣方向,自选题目,完成系统。在规定的时间里完成系统主体功能,程序比较稳定的运行。手机界面要求简洁、美观,功能不能过于简单,应具备一定的实用性。至少要3个Activity以上。欢迎好的创意作品、实用作品,评分时会适当加分。需提交设计报告,设计报告格式见附件,按附件顺序装订(包括评分表)大作业成绩从工作量、功能点、创新性、实用性、报告的字数、质...

Android移动终端开发大作业
Lastupdatedat10:00amon25thDecember2020Android移动终端开发大作业Android移动终端开发大作业作业要求1人一组,独立完成。按照个人兴趣方向,自选题目,完成系统。在规定的时间里完成系统主体功能,程序比较稳定的运行。手机界面要求简洁、美观,功能不能过于简单,应具备一定的实用性。至少要3个Activity以上。欢迎好的创意作品、实用作品,评分时会适当加分。需提交设计报告,设计报告格式见附件,按附件顺序装订(包括评分表)大作业成绩从工作量、功能点、创新性、实用性、报告的字数、质量及规范度等方面的成绩构成注意事项压缩包内作业内容包括两部分:作业设计说明,word文件。可以借鉴网络上的代码,但不可全部照搬。不许相互抄袭,一旦发现成绩为零。附件1:学号成绩Android平台移动应用开发大作业题目基于Android的新闻浏览软件的设计与实现学院信息工程学院专业信息工程班级信息1303姓名杏允升指导教师秦珀石2015年12月10日概述Android应用平台新闻客户端软件是基于Android手机平台,采用Java语言,从网络上的开放的新闻接口获取数据,设计出针对使用Android平台的手机新闻客户端资讯实时掌控的手机应用程序。Android平台新闻客户端软件的开发可以进一步扩大时事新闻的覆盖面,让广大公众能够随时随地方便且快捷地获取最新的新闻资讯信息,了解新闻时事,本软件的广泛使用,尤其是在传授知识、普及教育方面起着非常重要的作用。目前市场研究机构Worldpanel发布了全球主要的国家智能手机操作系统在去年Q4内的分布报告,报告指出了谷歌的Android继续保持着增长的势态,但是增幅已经明显放缓了。而在另一个方面,苹果iOS操作系统在全球只能手机市场上均有下滑,个别国家的降幅甚至高达%。最新统计数据中显示,Android操作系统将继续领跑全球市场,包括美国、澳大利亚、中国、意大利、英国、德国、西班牙等所占的市场比例都已经超出50%,并且还将继续呈现上涨的趋势。而在苹果iOS操作系统方面,最大的市场份额所占比的国家依旧是美国,数值为%;紧随美国的则是澳大利亚,数值为%;而在中国方面,市场份额也从%下降到了19%;在意大利,iOS所占的市场份额更是从%猛降至%。从上面的数据可以看出,Android手机软件的开发具有巨大的发展前景,在Android系统上开发出一款手机新闻客户端软件所支持的用户量也是相比较于其他系统多出很多的。谷歌的移动平台主管安迪·鲁宾(AndyRubin)表示,跟软件开发合作对象的密切接触正在进行中。Google与开放手机联盟联合开发了Android操作系统,这个联盟由摩托罗拉、高通、宏达电、中国移动和T-Mobile等在内的多家无线应用和技术的领军企业组成。Google通过与设备制造商、开发商、运营商和其他有关各方结成深层次的合作关系,希望借助建立开放式、标准化的移动移动电话软件平台,在移动产业内形成一个开放性的生态系统,这将是开发Android软件的一个契机,Android平台的开发在将来必定大放异彩。关键技术使用ViewPager里面添加多张图片配合线程延时实现轮播图的自没有通过ScheduledExecutorService或Timer定期执行某个任务实现,而是简单的通过handler发送消息去完成一次滚动,在完成一次滚动后发送另外一个delay的滚动消息,如此循环实现。自动滚动部分核心代码如下:至于ViewPager嵌套引起子ViewPager无法触摸问题是通过在子ViewPager的onTouchEvent中添加禁止父控件对touchevent做intercept解决的。ViewPager滑动速度的设置是通过反射的方式重新设置ViewPager的Scroller,改变Scroller的startScroll的间隔时间完成的。调用setScrollDurationFactor(double)即可。2、使用(1)引入公共库引入AndroidAutoScrollViewPager@Github作为你项目的library(如何拉取代码及添加公共库)。(2)调用仅需简单两步:布局定义代替一般的ViewPager定义b.启动ViewPager自动滚动startAutoScroll()启动自动滚动stopAutoScroll()停止自动滚动3、设置setInterval(long)设置自动滚动的间隔时间,单位为毫秒setDirection(int)设置自动滚动的方向,默认向右setCycle(boolean)是否自动循环轮播,默认为truesetScrollDurationFactor(double)设置ViewPager滑动动画间隔时间的倍率,达到减慢动画或改变动画速度的效果setStopScrollWhenTouch(boolean)当手指碰到ViewPager时是否停止自动滚动,默认为truesetSlideBorderMode(int)滑动到第一个或最后一个Item的处理方式,支持没有任何操作、轮播以及传递到父View三种模式setBorderAnimation(boolean)设置循环滚动时滑动到从边缘滚动到下一个是否需要动画,默认为true4、其他(1)指示器,圆形或是方形指示器请配合ViewPagerIndicator使用(2)无限循环,如果希望在最后一张继续播放第一张而不是退回到第一张,请参考,注意这个特性不能和ViewPagerIndicator使用2)使用viewpager结合ViewPageIndicator进行新闻类别的分类切换,可点击切换也可以滑动切换。1.ViewPagerIndicator的Library查看ViewpagerIndicator的Library代码,可以看到此项目的设计思想:首先定义了一个PageIndicator接口,它里面定义了最重要和基本的indicator表现出的一些方法:首先一个indicator必须要与一个ViewPager关联在一起,所以它提供了一个setViewPager方法。它扩展了接口,表示接管了ViewPager的Pager改变时的监听处理,这也是为什么为ViewPager设置OnPageChangeListener监听器时不能设置在ViewPager上而必须设置在indicator上的原因。还有一个notifyDataSetChanged通知方法,表示为这个ViewPager提供View(一般是Fragment)的 Adapter里面的数据集发生变化时,执行的动作,这里可增加相关的逻辑。2.ViewpagerIndicator的实现类然后再看下ViewpagerIndicator的实现类,共有6个,由6个类分别实现,它们分别为:小圆圈类型的带图标类型的小横线类型的,距离屏幕最下边端有一定的距离。标签类型的(Tab)标题类型的,与标签类型的有点像,但它当前的标题页的左/右边的标题会卷起,即往两端缩进去。屏幕底部小横线类型的,并且会占满整行。3.ViewpagerIndicator随附带的DemoDemo项目的设计项目由一个ListSamples的ListActivity入口,它主要用作组装所有的子indicator的列表。,所有ViewPager上真正显示的视图。,所有ViewPager里的Adapter,为ViewPager生成TestFragment。,所有的indicator的显示,一个类显示一种使用方法或特性2)使用viewpager结合ViewPageIndicator进行新闻类别的分类切换,可点击切换也可以滑动切换。3)使用Gson对新闻数据的json字符串进行解析显示到listview上需要使用jar包fastjson或gson这两个jar包。*YoumayobtainacopyoftheLicenseat***Unlessrequiredbyapplicablelaworagreedtoinwriting,software*distributedundertheLicenseisdistributedonan"ASIS"BASIS,*WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.*SeetheLicenseforthespecificlanguagegoverningpermissionsand*limitationsundertheLicense.*/publicclassTabSlidingIndicatorextendsHorizontalScrollView{publicinterfaceIconTabProvider{publicintgetPageIconResId(intposition);}etDisplayMetrics();scrollOffset=(int),scrollOffset,dm);indicatorHeight=(int),indicatorHeight,dm);underlineHeight=(int),underlineHeight,dm);dividerPadding=(int),dividerPadding,dm);tabPadding=(int),tabPadding,dm);dividerWidth=(int),dividerWidth,dm);tabTextSize=(int),tabTextSize,dm);etConfiguration().locale;}}publicvoidsetViewPager(ViewPagerpager){=pager;if()==null){thrownewIllegalStateException("ViewPagerdoesnothaveadapterinstance.");}(pageListener);notifyDataSetChanged();}publicvoidsetOnPageChangeListener(OnPageChangeListenerlistener){=listener;}publicvoidnotifyDataSetChanged(){();tabCount=().getCount();for(inti=0;i0||offset>0){newScrollX-=scrollOffset;}if(newScrollX!=lastScrollX){lastScrollX=newScrollX;scrollTo(newScrollX,0);}}@OverrideprotectedvoidonDraw(Canvascanvas){(canvas);if(isInEditMode()||tabCount==0){return;}finalintheight=getHeight();etWidth()));invalidate();if(delegatePageListener!=null){(position,positionOffset,positionOffsetPixels);}}@OverridepublicvoidonPageScrollStateChanged(intstate){if(state=={scrollToChild(),0);}if(delegatePageListener!=null){(state);}}@OverridepublicvoidonPageSelected(intposition){if(delegatePageListener!=null){(position);}updateTabStyles();}}publicvoidsetIndicatorColor(intindicatorColor){=indicatorColor;invalidate();}publicvoidsetIndicatorColorResource(intresId){=getResources().getColor(resId);invalidate();}publicintgetIndicatorColor(){return;}publicvoidsetIndicatorHeight(intindicatorLineHeightPx){=indicatorLineHeightPx;invalidate();}publicintgetIndicatorHeight(){returnindicatorHeight;}publicvoidsetUnderlineColor(intunderlineColor){=underlineColor;invalidate();}publicvoidsetUnderlineColorResource(intresId){=getResources().getColor(resId);invalidate();}publicintgetUnderlineColor(){returnunderlineColor;}publicvoidsetDividerColor(intdividerColor){=dividerColor;invalidate();}publicvoidsetDividerColorResource(intresId){=getResources().getColor(resId);invalidate();}publicintgetDividerColor(){returndividerColor;}publicvoidsetUnderlineHeight(intunderlineHeightPx){=underlineHeightPx;invalidate();}publicintgetUnderlineHeight(){returnunderlineHeight;}publicvoidsetDividerPadding(intdividerPaddingPx){=dividerPaddingPx;invalidate();}publicintgetDividerPadding(){returndividerPadding;}publicvoidsetScrollOffset(intscrollOffsetPx){=scrollOffsetPx;invalidate();}publicintgetScrollOffset(){returnscrollOffset;}publicvoidsetShouldExpand(booleanshouldExpand){=shouldExpand;requestLayout();}publicbooleangetShouldExpand(){returnshouldExpand;}publicbooleanisTextAllCaps(){returntextAllCaps;}publicvoidsetAllCaps(booleantextAllCaps){=textAllCaps;}publicvoidsetTextSize(inttextSizePx){=textSizePx;updateTabStyles();}publicintgetTextSize(){returntabTextSize;}publicvoidsetTextColor(inttextColor){=textColor;updateTabStyles();}publicvoidsetTextColor(inttextNormalColor,inttextSelectedColor){=textNormalColor;=textSelectedColor;updateTabStyles();}publicvoidsetTextColorResource(intresId){=getResources().getColor(resId);updateTabStyles();}publicintgetTextColor(){returntabTextColor;}publicvoidsetTypeface(Typefacetypeface,intstyle){=typeface;=style;updateTabStyles();}publicvoidsetTabBackground(intresId){=resId;}publicintgetTabBackground(){returntabBackgroundResId;}publicvoidsetTabPaddingLeftRight(intpaddingPx){=paddingPx;updateTabStyles();}publicintgetTabPaddingLeftRight(){returntabPadding;}@OverridepublicvoidonRestoreInstanceState(Parcelablestate){SavedStatesavedState=(SavedState)state;());currentPosition=;requestLayout();}@OverridepublicParcelableonSaveInstanceState(){ParcelablesuperState=();SavedStatesavedState=newSavedState(superState);=currentPosition;returnsavedState;}staticclassSavedStateextendsBaseSavedState{intcurrentPosition;publicSavedState(ParcelablesuperState){super(superState);}privateSavedState(Parcelin){super(in);currentPosition=();}@OverridepublicvoidwriteToParcel(Parceldest,intflags){(dest,flags);(currentPosition);}publicstaticfinalCREATOR=new(){@OverridepublicSavedStatecreateFromParcel(Parcelin){returnnewSavedState(in);}@OverridepublicSavedState[]newArray(intsize){returnnewSavedState[size];}};}}代码3:**LicensedundertheApacheLicense,Version(the"License");*youmaynotusethisfileexceptincompliancewiththeLicense.*YoumayobtainacopyoftheLicenseat**Unlessrequiredbyapplicablelaworagreedtoinwriting,software*distributedundertheLicenseisdistributedonan"ASIS"BASIS,*WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.*SeetheLicenseforthespecificlanguagegoverningpermissionsand*limitationsundertheLicense.*/publicclassBitmapUtilsimplementsTaskHandler{privatebooleanpauseTask=false;privatebooleancancelAllTask=false;privatefinalObjectpauseTaskLock=newObject();privateContextcontext;privateBitmapGlobalConfigglobalConfig;privateBitmapDisplayConfigdefaultDisplayConfig;etDrawable(resId));returnthis;}publicBitmapUtilsconfigDefaultLoadingImage(Bitmapbitmap){(newBitmapDrawable(),bitmap));returnthis;}publicBitmapUtilsconfigDefaultLoadFailedImage(Drawabledrawable){(drawable);returnthis;}publicBitmapUtilsconfigDefaultLoadFailedImage(intresId){().getDrawable(resId));returnthis;}publicBitmapUtilsconfigDefaultLoadFailedImage(Bitmapbitmap){(newBitmapDrawable(),bitmap));returnthis;}publicBitmapUtilsconfigDefaultBitmapMaxSize(intmaxWidth,intmaxHeight){(newBitmapSize(maxWidth,maxHeight));returnthis;}publicBitmapUtilsconfigDefaultBitmapMaxSize(BitmapSizemaxSize){(maxSize);returnthis;}publicBitmapUtilsconfigDefaultImageLoadAnimation(Animationanimation){(animation);returnthis;}publicBitmapUtilsconfigDefaultAutoRotation(booleanautoRotation){(autoRotation);returnthis;}publicBitmapUtilsconfigDefaultShowOriginal(booleanshowOriginal){(showOriginal);returnthis;}publicBitmapUtilsconfigDefaultBitmapConfigconfig){(config);returnthis;}publicBitmapUtilsconfigDefaultDisplayConfig(BitmapDisplayConfigdisplayConfig){defaultDisplayConfig=displayConfig;returnthis;}publicBitmapUtilsconfigDownloader(Downloaderdownloader){(downloader);returnthis;}publicBitmapUtilsconfigDefaultCacheExpiry(longdefaultExpiry){(defaultExpiry);returnthis;}publicBitmapUtilsconfigDefaultConnectTimeout(intconnectTimeout){(connectTimeout);returnthis;}publicBitmapUtilsconfigDefaultReadTimeout(intreadTimeout){(readTimeout);returnthis;}publicBitmapUtilsconfigThreadPoolSize(intthreadPoolSize){(threadPoolSize);returnthis;}publicBitmapUtilsconfigMemoryCacheEnabled(booleanenabled){(enabled);returnthis;}publicBitmapUtilsconfigDiskCacheEnabled(booleanenabled){(enabled);returnthis;}publicBitmapUtilsconfigDiskCacheFileNameGenerator(FileNameGeneratorfileNameGenerator){(fileNameGenerator);returnthis;}publicBitmapUtilsconfigBitmapCacheListener(BitmapCacheListenerlistener){(listener);returnthis;}Bitmapbitmap=().getBitmapFromMemCache(uri,displayConfig);if(bitmap!=null){(container,uri,displayConfig);(container,uri,bitmap,displayConfig,;}elseif(!bitmapLoadTaskExist(container,uri,callBack)){finalBitmapLoadTaskloadTask=newBitmapLoadTask(container,uri,displayConfig,callBack);etBitmapFileFromDiskCache(uri);}publicBitmapgetBitmapFromMemCache(Stringuri,BitmapDisplayConfigconfig){if(config==null){config=defaultDisplayConfig;}return().getBitmapFromMemCache(uri,config);}.params){synchronized(pauseTaskLock){while(pauseTask&&!()){try{();if(cancelAllTask){returnnull;}}catch(Throwablee){}}}Bitmapbitmap=null;etBitmapFromDiskCache(uri,displayConfig);}ownloadBitmap(uri,displayConfig,this);from=;}returnbitmap;}publicvoidupdateProgress(longtotal,longcurrent){(PROGRESS_LOADING,total,current);}privatestaticfinalintPROGRESS_LOAD_STARTED=0;privatestaticfinalintPROGRESS_LOADING=1;@OverrideprotectedvoidonProgressUpdate(Object...values){if(values==null||==0)return;finalTcontainer=();if(container==null)return;switch((Integer)values[0]){casePROGRESS_LOAD_STARTED:(container,uri,displayConfig);break;casePROGRESS_LOADING:if!=3)return;(container,uri,displayConfig,(Long)values[1],(Long)values[2]);break;default:break;}}@OverrideprotectedvoidonPostExecute(Bitmapbitmap){finalTcontainer=();if(container!=null){if(bitmap!=null){(container,,bitmap,displayConfig,from);}else{(container,,());}}}@OverrideprotectedvoidonCancelled(Bitmapbitmap){synchronized(pauseTaskLock){();}}publicTgetTargetContainer(){finalTcontainer=();finalBitmapLoadTaskbitmapWorkerTask=getBitmapTaskFromContainer(container,callBack);if(this==bitmapWorkerTask){returncontainer;}returnnull;}}}四、 心得体会 决胜全面小康心得体会学党史心得下载党史学习心得下载军训心得免费下载党史学习心得下载 一开始接触Android是从自己的手机开始的,觉得它很酷,是我喜欢的风格,然后我就通过了一些网络渠道去了解Android。在选课的时候发现有这个课程,于是我就报名了。刚开始接触Android开发时感觉到它很有意思,在界面开发上和web也可以形成了相通的架构,更加方便,视觉上也是非常的酷。Android作为新兴的手机操作系统,适应潮流的发展,在一定程度上迎合了现代人们最求效率和最求完美的心态,再加上的它的先进之处,所以Android的发展很快,Android的应用资源也越来越广泛,现在的Android正在快速形成一个只能手机王国,给人们提供日常娱乐和办公的平台,无论在哪些方面,Android的表现总是能够让人满意,它正在快速地占领手机终端,未来的智能手机领域将是Android的天下,越来越多的人选用Android平台的手机。如果说追求苹果是因为苹果的高端与美感,那么追求Android则是因为它的先进性开源性,也正是因为Android这些吸引人们瞩目的特点,才会有越来越多的人对Android充满激情,Android的发展也才能这样的迅猛,所以在这里要先谢谢Goolge,以及那些充满激情的开发者们。首先在界面上,我们同样可以通过不同布局进行设计非常酷的界面,这些界面可以通过include进行引入,我们可以通过一些公用的方法写个BaseActivity这个基类,通过继承方式比较不错的实现了Activity的界面,因为这样你可以Header(头部)和Footer(尾部)进行处理一些触发事件或者特效等。布局模式以相对模式为主,线线布局模式可以在比较简单的include进行完成,最重要的一点就是:我们可以自己通过重写方法或者通过实现View或者Layout等类进行扩充项目需要的布局(或者控件),在学习界面中,Android为我们提供了很好的类似反射机制,通过Layout文件夹下的配置文件,可以快速的形成界面,在配置文件可以设置属性或者样式都是很快捷方便。对比较特殊的界面也可以通过处理嵌入到指定的界面,同样可以通过java代码直接创建View进行添加,不过这种方式比较复杂。对一些点击、选中、按键等处理的事件,界面之间的跳转Intent管理,通过Bundle对数据在界面之间进行传输。其次在手机交互式通信服务中,学习了Android手机之间进行短信发送、广播、对广播的监听、服务等。评分表序号评分细则分数得分1功能基本完成202程序运行无语法和逻辑错误203报告内容与格式符合要求204达到了软件设计的各项要求105软件创新性与实用性106代码量充足107其他(代码质量、代码注释、界面美观、交互有好等)10
本文档为【Android移动终端开发大作业】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥18.0 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
爱财有道
乐观向上,敢于挑战
格式:doc
大小:3MB
软件:Word
页数:0
分类:企业经营
上传时间:2021-09-20
浏览量:14