Android设计文档Word文档下载推荐.docx
《Android设计文档Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Android设计文档Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。
图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
画面转换位置移动动画效果(从右进入)
画面转换位置移动动画效果(从右移出)
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);
publicViewgetGroupView(intgroupPosition,booleanisExpanded,
ViewconvertView,ViewGroupparent)
textView.setText(getGroup(groupPosition).toString());
textView.setPadding(myPaddingLeft+(PaddingLeft>
>
1),0,0,0);
二级菜单的具体代码。
菜单内容实现方式,数据继承位置的设定,及具体显示方式。
(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)“分类”页功能演示