Android设计文档
《Android设计文档》由会员分享,可在线阅读,更多相关《Android设计文档(7页珍藏版)》请在装配图网上搜索。
1、4 Android校园通软件的设计与实现4.1 研究目标(1)了解Android应用程序的设计和开发过程;(2) 使用多种组件进行Android 平台校园资讯软件的开发。本软件是基于Eclipse的开发环境,在Android平台上的 校园资讯软件。4.2 需求分析本软件是Android平台的一个校园资讯程序,启动程序后查阅学校相关资讯包括在学校吃住娱乐风景等各方面的讯息。从上面的描述中可以基本了解软件的功能需求:(1) 首先是学校电影院每周电影的更新;(2) 其次有学校的各种资料;(3) 各种校园活动及周边娱乐设施的信息;(4) 校园校景美图查看;(5) 校园生活手册;(6) 扩展内容“我的资
2、料”,及“更多”两个Activity。4.3 UI界面设计根据需求分析可以知道,应用程序应包含五个主要的用户界面,这里需要进一步分析每个用户界面中应该包括哪些显示内容。在首页中,需要对学校的大致情况做以介绍,并且有每周影讯的功能。在“分类”中,有各种学校的相关资料。包括娱乐,电影,纪录片,校景,公开课及生活。另外,还有扩展内容“我的资料”及“更多”两个选项卡如图4-1所示。图4-1 用户界面草图4.4程序模块设计 从功能需求上分析可以看出,整个应用程序应划分为5个模块,分别是首页、分类、搜索、我的资料和扩展功能区。 首页介绍学校的一个总体情况,分类是整个软件的核心,其中包括了软件的各种主要功能
3、,搜索是一个数据库搜索系统,我的资料是个人资料和数据的一个整合和提供了一些简单的小服务,更多则是后期的一些扩展功能。 在完成用户界面设计、数据库设计和模块设计后,至此程序设计阶段基本完成。4.5软件功能图校园通软件首页分类娱乐影院信息电影纪录片校景查询热门查询更多我的资料我的课程我的备忘我的日程我的分享图4-2 软件功能图4.6文件结构与用途在程序开发阶段,首先确定“Android平台校园通软件”的工程名为MySchool,据程序模块设计的内容,建立MySchool工程。MySchool工程源代码的结构如图5.1所示。为了使源代码文件的结构更加清晰,MySchool工程设置了多个命名空间,分别
4、用来保存用户界面、数据库和工具实体的源代码文件,源代码文件的名称以及说明。图4-2 MySchool工程的源代码文件包 名 称文 件 名说 明MainActivity.javaMainActivity所在AccountActivity.java“我的资料”的ActivityChannelActivity.java“分类”的ActivityHomeActivity.java“主页”的ActivityMoreActivity.java“更多”的ActivitySearchActivity.java“搜索”的ActivityWidgetActivity.java当前信息类表4-1 MySchool工
5、程的文件用途说明Android的资源文件保存在/res的子目录中。其中、/res/anim目录中保存的是产生动画效果的XML文件,/res/drawable/目录中保存的是图像文件,/res/values目录中保存的是用来自定义字符串和颜色的文件,/res/xml目录中保存的是XML格式的数据文件。所有在程序开发阶段可以被调用的资源都保存在这些目录中,具体每个资源文件的用途可以参考表5.2:资源目录文 件说 明animGrallery_in.xml图片进入效果left_in.xml画面转换位置移动动画效果(从左进入)left_out.xml画面转换位置移动动画效果(从左移出)right_in.
6、xml画面转换位置移动动画效果(从右进入)left_out.xml画面转换位置移动动画效果(从右移出)drawableicon1.png这个文件夹里是工程里所用的图片,此处不赘述。icon2.pngicon3.png layouthome.xml“首页”的布局channel.xml“分类”的布局search.xml“搜索”的布局.还有很多的layout,不赘述valuesstyle.xml保存样式的XML文件strings.xml保存字符串的XML的文件drawbles.xmlAppWidget的属性文件表4.2 资源文件名称与用途4.7 程序主要代码在介绍MySchool的核心代码前,首先了
7、解一下MainActivity.java()。(1) MainActivity.java的部分代码:publicstatic String TAB_TAG_HOME = home;publicstatic String TAB_TAG_CHANNEL = channel;publicstatic String TAB_TAG_ACCOUNT = account;publicstatic String TAB_TAG_SEARCH = search;publicstatic String TAB_TAB_MORE = more;ImageViewmBut1, mBut2, mBut3, mBut
8、4, mBut5;TextViewmCateText1,mCateText2, mCateText3, mCateText4, mCateText5;Intent mHomeItent, mChannelIntent, mSearchIntent, mAccountIntent,mMoreIntent;先声明了用到的组件。从代码中可以看出,MainActivity的主要功能就是软件的导航栏。(2) ChannelActivity.java的部分代码:privatevoidfindviews() fun =(Button)findViewById(R.id.channel_type_fun);m
9、ovie=(Button)findViewById(R.id.channel_type_movie);record=(Button)findViewById(R.id.channel_type_record);tourism=(Button)findViewById(R.id.channel_type_tourism);publicity=(Button)findViewById(R.id.channel_type_publicity);clips=(Button)findViewById(R.id.channel_type_clips); privatevoidsetListensers()
10、 fun.setOnClickListener(clickfun);movie.setOnClickListener(clickmovie);record.setOnClickListener(clickrecord);tourism.setOnClickListener(clicktourism);publicity.setOnClickListener(clickpublicity);clips.setOnClickListener(clickclips);PrivateButton.OnClickListenerclickfun=newButton.OnClickListener()pu
11、blicvoidonClick(View v)Intent funint = newIntent();funint.setClass(ChannelActivity.this, FunActivity.class);startActivity(funint);从代码中可以看出,WidgetEntity类中有fun,movie,record,tourism,publicity,clips这6个功能模块。而该页的功能就是作为这六个功能的实现也简单描述一下。(3)FunActivity.java中的部分代码ExpandableListViewexpandableList;TreeViewAdapte
12、radapter;SuperTreeViewAdaptersuperAdapter;Button btnNormal, btnSuper;设置了二级菜单显示校内娱乐,三级菜单显示校外娱乐expandableList.setAdapter(adapter);expandableList.setOnChildClickListener(newOnChildClickListener()OverridepublicbooleanonChildClick(ExpandableListView arg0, View arg1,int parent, int children, long arg4)Str
13、ing str = 欢迎各位同学积极参加 ;Toast.makeText(FunActivity.this, str, 300).show();returnfalse;);用Toast做了友情小提示。以上是Toast(透明试弹出型提示框)的实现代码,其中包括了显示内容,显示类型及显示时间。publicstaticfinalintItemHeight = 40;/ 每项的高度publicstaticfinalintPaddingLeft = 30;/ 每项的高度privateintmyPaddingLeft = 0;/ 如果是由SuperTreeView调用,则作为子项需要往右移staticpu
14、blicTextViewgetTextView(Context context)AbsListView.LayoutParamslp = newAbsListView.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ItemHeight);TextViewtextView = newTextView(context);textView.setLayoutParams(lp);textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);returntextView;public View
15、 getChildView(intgroupPosition, intchildPosition,booleanisLastChild, View convertView, ViewGroup parent)TextViewtextView = getTextView(this.parentContext);textView.setText(getChild(groupPosition, childPosition).toString();textView.setPadding(myPaddingLeft + PaddingLeft, 0, 0, 0);returntextView;publi
16、c View getGroupView(intgroupPosition, booleanisExpanded,View convertView, ViewGroup parent)TextViewtextView = getTextView(this.parentContext);textView.setText(getGroup(groupPosition).toString();textView.setPadding(myPaddingLeft + (PaddingLeft 1), 0, 0, 0);returntextView;二级菜单的具体代码。菜单内容实现方式,数据继承位置的设定,
17、及具体显示方式。(4) TourismActivity.java中的部分代码。public View getView(int position, View convertView, ViewGroup parent)ViewHolderviewHolder;if (convertView = null)convertView = inflater.inflate(R.layout.picture_item, null);viewHolder = newViewHolder();viewHolder.title = (TextView) convertView.findViewById(R.id
18、.title);viewHolder.image = (ImageView) convertView.findViewById(R.id.image);convertView.setTag(viewHolder); elseviewHolder = (ViewHolder) convertView.getTag();viewHolder.title.setText(pictures.get(position).getTitle();viewHolder.image.setImageResource(pictures.get(position).getImageId();returnconvertView;使用gridView控件来实现图片的显示,并绑定一个textview来实现文字和图片成组显示。4.8用户界面在用户界面设计上,采用了咨询软件框架结构,提供直观的交互操作。五个用户界面风格简约、操作简便,用户体验将非常好。4.9 系统测试至此已经完成了MySchool工程的代码编写工作,在这一节对MySchool工程进行测试,步骤及结果如下:(1) 启动Android虚拟机在工程名Myschool上点右键,然后选择“Run As”,然后选择“Android Application”。 Android虚拟机启动较慢。如下图所示:(2) “分类”页功能演示
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。