图4-1 用户界面草图
4.4 程序模块设计
从功能需求上分析可以看出,整个应用程序应划分为5个模块,分别是首页、 首页介绍学校的一个总体情况,分类是整个软件的核心,其中包括了软件的各
分类、搜索、我的资料和扩展功能区。
种主要功能,搜索是一个数据库搜索系统,我的资料是个人资料和数据的一个整合和提供了一些简单的小服务,更多则是后期的一些扩展功能。
在完成用户界面设计、数据库设计和模块设计后,至此程序设计阶段基本完成。
4.5 软件功能图
《校园通》软件 首页分类影院信息我的资料更多 娱乐电影纪录片校景查询热门查询我的课程我的备忘我的日程我的分享
图4-2 软件功能图
4.6 文件结构与用途
在程序开发阶段,首先确定“Android平台校园通软件”的工程名为MySchool,据程序模块设计的内容,建立MySchool工程。MySchool工程源代码的结构如图5.1所示。
为了使源代码文件的结构更加清晰,MySchool工程设置了多个命名空间,分别用来保存用户界面、数据库和工具实体的源代码文件,源代码文件的名称以及说明。
图4-2 MySchool工程的源代码文件
包 名 称 com.hs.xyt 文 件 名 MainActivity.java 说 明 MainActivity所在 com.hs.xyt.account AccountActivity.java “我的资料”的Activity com.hs.xyt.channel ChannelActivity.java “分类”的Activity com.hs.xyt.home com.hs.xyt.more com.hs.xyt.search com.hs.xyt.widget HomeActivity.java MoreActivity.java SearchActivity.java WidgetActivity.java “主页”的Activity “更多”的Activity “搜索”的Activity 当前信息类 表4-1 MySchool工程的文件用途说明
Android的资源文件保存在/res的子目录中。其中、/res/anim目录中保存的是产生动画效果的XML文件,/res/drawable/目录中保存的是图像文件,
/res/values目录中保存的是用来自定义字符串和颜色的文件,/res/xml目录中保存的是XML格式的数据文件。所有在程序开发阶段可以被调用的资源都保存在这些目录中,具体每个资源文件的用途可以参考表5.2: 资源目录 文 件 Grallery_in.xml left_in.xml anim left_out.xml right_in.xml left_out.xml icon1.png drawable icon2.png icon3.png ?? home.xml channel.xml layout search.xml ... values style.xml strings.xml drawbles.xml
4.7 程序主要代码
在介绍MySchool的核心代码前,首先了解一下MainActivity.java()。 (1) MainActivity.java的部分代码:
public static String TAB_TAG_HOME = \;
public static String TAB_TAG_CHANNEL = \; public static String TAB_TAG_ACCOUNT = \; public static String TAB_TAG_SEARCH = \; public static String TAB_TAB_MORE = \;
“首页”的布局 “分类”的布局 “搜索”的布局 还有很多的layout,不赘述 保存样式的XML文件 保存字符串的XML的文件 AppWidget的属性文件 这个文件夹里是工程里所用的图片,此处不赘述。 说 明 图片进入效果 画面转换位置移动动画效果(从左进入) 画面转换位置移动动画效果(从左移出) 画面转换位置移动动画效果(从右进入) 画面转换位置移动动画效果(从右移出) 表4.2 资源文件名称与用途 ImageView mBut1, mBut2, mBut3, mBut4, mBut5;
TextView mCateText1,mCateText2, mCateText3, mCateText4, mCateText5; Intent mHomeItent, mChannelIntent, mSearchIntent, mAccountIntent, mMoreIntent;
先声明了用到的组件。从代码中可以看出,MainActivity的主要功能就是软件的导航栏。
(2) ChannelActivity.java的部分代码:
private void findviews(){
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); }
private void setListensers() { fun.setOnClickListener(clickfun);
movie.setOnClickListener(clickmovie); record.setOnClickListener(clickrecord); tourism.setOnClickListener(clicktourism);
publicity.setOnClickListener(clickpublicity); clips.setOnClickListener(clickclips);
} Private Button.OnClickListener clickfun= new Button.OnClickListener(){ public void onClick(View v){
Intent funint = new Intent();
funint.setClass(ChannelActivity.this, FunActivity.class); startActivity(funint); }
};
从代码中可以看出,WidgetEntity类中有fun,movie,record,tourism,publicity,clips这6个功能模块。而该页的功能就是作为这六个功能的实现也简单描述一下。
(3)FunActivity.java中的部分代码 ExpandableListView expandableList;
TreeViewAdapter adapter;
SuperTreeViewAdapter superAdapter; Button btnNormal, btnSuper;