Android设计文档.docx

上传人:b****5 文档编号:7210615 上传时间:2023-01-21 格式:DOCX 页数:15 大小:502.07KB
下载 相关 举报
Android设计文档.docx_第1页
第1页 / 共15页
Android设计文档.docx_第2页
第2页 / 共15页
Android设计文档.docx_第3页
第3页 / 共15页
Android设计文档.docx_第4页
第4页 / 共15页
Android设计文档.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

Android设计文档.docx

《Android设计文档.docx》由会员分享,可在线阅读,更多相关《Android设计文档.docx(15页珍藏版)》请在冰豆网上搜索。

Android设计文档.docx

Android设计文档

4Android校园通软件的设计与实现

4.1研究目标

(1)了解Android应用程序的设计和开发过程;

(2)使用多种组件进行Android平台校园资讯软件的开发。

本软件是基于Eclipse的开发环境,在Android平台上的手机校园资讯软件。

4.2需求分析

本软件是Android平台的一个校园资讯程序,启动程序后查阅学校相关资讯包括在学校吃住娱乐风景等各方面的讯息。

从上面的描述中可以基本了解软件的功能需求:

(1)首先是学校电影院每周电影的更新;

(2)其次有学校的各种资料;

(3)各种校园活动及周边娱乐设施的信息;

(4)校园校景美图查看;

(5)校园生活手册;

(6)扩展内容“我的资料”,及“更多”两个Activity。

 

4.3UI界面设计

根据需求分析可以知道,应用程序应包含五个主要的用户界面,这里需要进一步分析每个用户界面中应该包括哪些显示内容。

在首页中,需要对学校的大致情况做以介绍,并且有每周影讯的功能。

在“分类”中,有各种学校的相关资料。

包括娱乐,电影,纪录片,校景,公开课及生活。

另外,还有扩展内容“我的资料”及“更多”两个选项卡如图4-1所示。

图4-1用户界面草图

4.4程序模块设计

从功能需求上分析可以看出,整个应用程序应划分为5个模块,分别是首页、分类、搜索、我的资料和扩展功能区。

首页介绍学校的一个总体情况,分类是整个软件的核心,其中包括了软件的各种主要功能,搜索是一个数据库搜索系统,我的资料是个人资料和数据的一个整合和提供了一些简单的小服务,更多则是后期的一些扩展功能。

在完成用户界面设计、数据库设计和模块设计后,至此程序设计阶段基本完成。

4.5软件功能图

《校园通》软件

首页

分类

娱乐

影院信息

电影

纪录片

校景

查询

热门查询

更多

我的资料

我的课程

我的备忘

我的日程

我的分享

图4-2软件功能图

4.6文件结构与用途

在程序开发阶段,首先确定“Android平台校园通软件”的工程名为MySchool,据程序模块设计的内容,建立MySchool工程。

MySchool工程源代码的结构如图5.1所示。

为了使源代码文件的结构更加清晰,MySchool工程设置了多个命名空间,分别用来保存用户界面、数据库和工具实体的源代码文件,源代码文件的名称以及说明。

图4-2MySchool工程的源代码文件

包名称

文件名

说明

com.hs.xyt

MainActivity.java

MainActivity所在

com.hs.xyt.account

AccountActivity.java

“我的资料”的Activity

com.hs.xyt.channel

ChannelActivity.java

“分类”的Activity

com.hs.xyt.home

HomeActivity.java

“主页”的Activity

com.hs.xyt.more

MoreActivity.java

“更多”的Activity

com.hs.xyt.search

SearchActivity.java

“搜索”的Activity

com.hs.xyt.widget

WidgetActivity.java

当前信息类

表4-1MySchool工程的文件用途说明

Android的资源文件保存在/res的子目录中。

其中、/res/anim目录中保存的是产生动画效果的XML文件,/res/drawable/目录中保存的是图像文件,/res/values目录中保存的是用来自定义字符串和颜色的文件,/res/xml目录中保存的是XML格式的数据文件。

所有在程序开发阶段可以被调用的资源都保存在这些目录中,具体每个资源文件的用途可以参考表5.2:

资源目录

文件

说明

anim

Grallery_in.xml

图片进入效果

left_in.xml

画面转换位置移动动画效果(从左进入)

left_out.xml

画面转换位置移动动画效果(从左移出)

right_in.xml

画面转换位置移动动画效果(从右进入)

left_out.xml

画面转换位置移动动画效果(从右移出)

drawable

icon1.png

这个文件夹里是工程里所用的图片,此处不赘述。

icon2.png

icon3.png

……

layout

home.xml

“首页”的布局

channel.xml

“分类”的布局

search.xml

“搜索”的布局

...

还有很多的layout,不赘述

values

style.xml

保存样式的XML文件

strings.xml

保存字符串的XML的文件

drawbles.xml

AppWidget的属性文件

表4.2资源文件名称与用途

4.7程序主要代码

在介绍MySchool的核心代码前,首先了解一下MainActivity.java()。

(1)MainActivity.java的部分代码:

publicstaticStringTAB_TAG_HOME="home";

publicstaticStringTAB_TAG_CHANNEL="channel";

publicstaticStringTAB_TAG_ACCOUNT="account";

publicstaticStringTAB_TAG_SEARCH="search";

publicstaticStringTAB_TAB_MORE="more";

ImageViewmBut1,mBut2,mBut3,mBut4,mBut5;

TextViewmCateText1,mCateText2,mCateText3,mCateText4,mCateText5;

IntentmHomeItent,mChannelIntent,mSearchIntent,mAccountIntent,

mMoreIntent;

先声明了用到的组件。

从代码中可以看出,MainActivity的主要功能就是软件的导航栏。

(2)ChannelActivity.java的部分代码:

privatevoidfindviews(){

fun=(Button)findViewById(R.id.channel_type_fun);

movie=(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(){

fun.setOnClickListener(clickfun);

movie.setOnClickListener(clickmovie);

record.setOnClickListener(clickrecord);

tourism.setOnClickListener(clicktourism);

publicity.setOnClickListener(clickpublicity);

clips.setOnClickListener(clickclips);

}

PrivateButton.OnClickListenerclickfun=

newButton.OnClickListener(){

publicvoidonClick(Viewv){

Intentfunint=newIntent();

funint.setClass(ChannelActivity.this,FunActivity.class);startActivity(funint);

}

};

从代码中可以看出,WidgetEntity类中有fun,movie,record,tourism,publicity,clips这6个功能模块。

而该页的功能就是作为这六个功能的实现也简单描述一下。

(3)FunActivity.java中的部分代码

ExpandableListViewexpandableList;

TreeViewAdapteradapter;

SuperTreeViewAdaptersuperAdapter;

ButtonbtnNormal,btnSuper;

设置了二级菜单显示校内娱乐,三级菜单显示校外娱乐

expandableList.setAdapter(adapter);

expandableList.setOnChildClickListener(newOnChildClickListener()

{

@Override

publicbooleanonChildClick(ExpandableListViewarg0,Viewarg1,

intparent,intchildren,longarg4)

{

Stringstr="欢迎各位同学积极参加";

Toast.makeText(FunActivity.this,str,300).show();

returnfalse;

}

});

用Toast做了友情小提示。

以上是Toast(透明试弹出型提示框)的实现代码,其中包括了显示内容,显示类型及显示时间。

publicstaticfinalintItemHeight=40;//每项的高度

publicstaticfinalintPaddingLeft=30;//每项的高度

privateintmyPaddingLeft=0;//如果是由SuperTreeView调用,则作为子项需要往右移

staticpublicTextViewgetTextView(Contextcontext)

{

AbsListView.LayoutParamslp=newAbsListView.LayoutParams(

ViewGroup.LayoutParams.FILL_PARENT,ItemHeight);

TextViewtextView=newTextView(context);

textView.setLayoutParams(lp);

textView.setGravity(Gravity.CENTER_VERTICAL|Gravity.LEFT);

returntextView;

}

 

publicViewgetChildView(intgroupPosition,intchildPosition,

booleanisLastChild,ViewconvertView,ViewGroupparent)

{

TextViewtextView=getTextView(this.parentContext);

textView.setText(getChild(groupPosition,childPosition).toString());

textView.setPadding(myPaddingLeft+PaddingLeft,0,0,0);

returntextView;

}

publicViewgetGroupView(intgroupPosition,booleanisExpanded,

ViewconvertView,ViewGroupparent)

{

TextViewtextView=getTextView(this.parentContext);

textView.setText(getGroup(groupPosition).toString());

textView.setPadding(myPaddingLeft+(PaddingLeft>>1),0,0,0);

returntextView;

}

二级菜单的具体代码。

菜单内容实现方式,数据继承位置的设定,及具体显示方式。

(4)TourismActivity.java中的部分代码。

publicViewgetView(intposition,ViewconvertView,ViewGroupparent)

{

ViewHolderviewHolder;

if(convertView==null)

{

convertView=inflater.inflate(R.layout.picture_item,null);

viewHolder=newViewHolder();

viewHolder.title=(TextView)convertView.findViewById(R.id.title);

viewHolder.image=(ImageView)convertView.findViewById(R.id.image);

convertView.setTag(viewHolder);

}else

{

viewHolder=(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上点右键,然后选择“RunAs”,然后选择“AndroidApplication”。

Android虚拟机启动较慢。

如下图所示:

(2)“分类”页功能演示

 

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1