Android实践项目汇报(三)

3系统的详细设计

3.1系统主界面的设计一般思路

一般我们制作头部菜单栏是为了提升软件的可操作性,可以用的是TabHost+RadioGroup相结合的方法来制作这个部分的。菜单栏的底部位置是通过TabHost这个布局来实现的,然后是LinearLayout的线性布局来布置内容。内部的选项卡是通过TabWiget来实现。

首先建立好Android工程(我的工程名为:ScheduleManager),在工程下的res/layout下建立一个名为main的空xml文件,然后在这个文件里按照思路来添加布局代码。

主界面的菜单选项使用RadioGroup来建立,在这里的布局中RadioGroup里容纳4个RadioButton,而RadioButton是单选按钮。在这种情况下就只有也只能有一个RadioButton能被选择,并且在开始时默认了第一个按钮被选中。其中RadioButton的实现方式是在设置了内部的文字,然后再按钮的顶部上添加上图片,实现的代码如下:

<RadioButton

android:text="@string/main_date"

android:drawableTop="@drawable/tab_date"

android:id="@+id/radio_button0"

android:checked="true"

style="@style/main_tab_bottom"/>

从上述代码可以看到,在菜单的每个选项卡样式都是调用了style上的main_tab_bottom来实现样式的,而main_tab_bottom的背景background的值@drawable/btn_bg,btn_bg不是一个简单的背景图片,而是一个xml文件,通过这个文件可以实现菜单选项卡切换时的背景切换的效果,使得这个菜单栏更加的美观,代码是使用了安卓的selector来实现,在这里是通过不停的条件来判断使用哪一个item的,里面包括了几个属性值,如是否获得焦点、是否响应事件、是否点击三个条件。实施的代码如下:

<selector

xmlns:android="http://schemas.android.com/apk/res/android">

<itemandroid:state_focused="true"android:state_enabled="true"android:state_pressed="false"android:drawable="@drawable/btn_bg_s"/>

<itemandroid:state_enabled="true"android:state_pressed="true"android:drawable="@drawable/btn_bg_s"/>

<itemandroid:state_enabled="true"android:state_checked="true"android:drawable="@drawable/btn_bg_d"/>

</selector>

制定完主页面布局后,在src/com.manage.activity下的MainPage文件中OnCreate(OnCreate方法是用来初始化Activity实例对象的)中调用布局,到现在为止顶部菜单栏的布局已经基本完成,但现在里面所对应的内容还是空的。所以就需要在这里给tabHost中添加tab内容,以第一格的tab为例,先是通过Intent的方式新建个mDate,用来实现页面的跳转的方法,然后动态用tabHost来通过addTab的方法添加对应TabSpec的值和各个属性。

最后在添加RadioGroup的选择操作函数,这里是通过switch来完成对应按钮的功能的实现,在每个case项中通过tabHost.setCurrentTabByTag来给与特定的值实现页面上的跳转。

在上述思路下我们的详细的效果图如下:

图3-1 系统主界面

3.2  系统触摸反应及页面跳转的一般设计思路

系统主界面默认选择界面在头部菜单栏下方。

(1)首先是建立一个布局文件,上面一部分是显示部分。使用的是一个TextView类,对应的在的CalendarActivity文件中加入函数来添加头部的年份等信息。

首先需要写了一个CalendarView类,这是为显示所写的一个类,在其中使用重载的方法定义了几个不同参数的CalendarView,用于不同的情况。在CalendarActivity中实例化CalendarView并且使用CalendarView中的一个方法。

CalendarView(this,getResources(),jumpMonth,jumpYear,year_c,month_c,day_c);然后书写方法来添加头部信息。

首先是对这个页面的头部进行布局,通过动态化的方法来完成。

然后建立一个可以进行改变值的StringBuffer类型的参数textDate。对这个参数进行append操作里。其中有一个判断的条件函数,是通过calV.getLeapMonth()的值惊醒判断的。完成后对界面使用setText方法来赋值到界面上。

最后是对界面的一些美化,同样使用动态布局模式进行。

(2)下面是界面中主体期部分显示的完成

在CalendarActivity文件初始化实例对象时加入动态添加布局文件的方法。我将此方法命名为addGridView。在这个方法中同样是先进行动态化布局,由于这里用的是GridView,这个GridView应用于将一系列的空间组织成二维网格的形式显示出来,所以适用于我在这里进行的日期界面的建立。

同样的首先是动态化布局的建立,这可以实例化GridView为gridView参数进行的。在这里需要添加GridView控件的列为7,列宽为46。并且还加上判断屏幕大小的条件,这需要加入取得屏幕大小的对应函数,这里如果是800*480屏幕的话,就将列宽设置为69。然后进行设置水平和竖直的间距、取值边框、设置居中等操作。

在这个方法里面还需加入个OnTouch方法,用来将gridView中的触摸事件回传给gestureDetector,进行下面的触摸操作,即:

//将gridview中的触摸事件回传给gestureDetector

@Override

publicbooleanonTouch(Viewv,MotionEventevent){

returnCalendarActivity.this.gestureDetector.onTouchEvent(event);

}

});

创建完的布局后,是在里面添加上具体的信息。就当前显示的页面来说,是建立几个对应的参数,用来显示或传接数据。例如在函数开始时就String[]dayNumber=newString[49];这是作为对GridView控件内进行标记序列的,用于下面条件语句的判断等,还有就是界面内的一些控件名的实例化。然后是动态化的对页面进行属性值的设置。

下一步是当前信息的显示,这也需要条件函数来判断是否为符合条件的数据,也是来判断参数position是否在范围内。

通过上述的步骤基本完成了界面中的初步建设。

3.3系统的进入与单词查询模块模块

用户信息不想其他程序那样需要包括用户名、用户密码,也不需要点击“注册”,如果用户没输入必要的字段,更不会就会提示用户输入来完成注册。单词查询模块实现用户查询单词功能,它验证用户提交的单词是否被授权,如果单词为空,会提示请输入用户名,如果单词没输入或输入错误,会输入单词为空或错误,并根据访问权限为用户提供相应的业务功能。一旦进入成功,可以直接进入系统查询单词;这样大大方便了用户的操作。具体程序操作截图如下:

图3-2-1   英文查词及保存生词

图3-2-2  中文查词

3.4单词的翻译模块

对于一款良好的自主学习应用软件而言,可以对自己不熟悉的短句句子进行翻译,具体效果如下:

图3-3  句子翻译模块

3.5 生词本模块

在生词本模块中有在查词过程中保存的生词,在该模块中我们可以对生词进行管理,可以删除生词以及当点击某个生词时可以再次跳转到查询该词的界面,方便二次查询。具体截图如下。

图3-4  生词本模块

遇到的问题:

运行Eclipse时出现了这个错误 :No Launcher activity found! The launch will only sync the application package on the device!

解决办法 :
在AndroidManifest.xml 中添加<category android:name="android.intent.category.LAUNCHER" />

时间: 2024-11-09 23:13:16

Android实践项目汇报(三)的相关文章

Android实践项目汇报

Android实践项目:推箱子 推箱子是一款来自日本的古老游戏,其设计目的是训练人的逻辑思维能力.游戏场景一般是设定在空间狭小的仓库中,要求把箱子摆放到指定位置.这就要求玩家巧妙的运用有限的空间和通道,合理的安排箱子的位置和移动次序才可能完成任务. 随着计算机游戏的发展,很多编程爱好者基于该游戏的思想开发了出各种版本.各种类型的推箱子.这其中也包括很多手机版本的实现,伴随着手机与计算机的普及,很快推箱子游戏便进入了千家万户. 一.需求分析: 2.1 功能需求 在游戏开发之前,首先需要对游戏所应该

Android实践项目汇报总结(上)

微博客户端的设计与实现 第一章 绪论 1.1课题背景 微博可以说是时下最受人们所喜爱的一种社交方式,它是一种通过关注机制分享简短实时信息的广播式的社交网络平台.通过微博我们可以了解最新的时事新闻动态,了解社会的各种声音.目前一些基于Android平台的微博客户端有很多,如:Weico.BlackLight.Fuubo等,功能相对比较完善,界面美观,但基于市场利益考虑,均有不同程度的涉及广告的行为,招到很多用户的不满.因此,本课题就致力于开发出一款基于Android平台的腾讯微博客户端,可以方便的

Android实践项目汇报(总结)-修改

天气客户端开发报告 1系统需求分析 1.1功能性需求分析 天气预报客户端,最基本就是为用户提供准确的天气预报信息.天气查询结果有两种:一种是当天天气信息,信息结果比较详细,除温度.天气状况外还可以提示穿衣建议.湿度.风向等信息,这样使天气信息更加完善:一种是未来几天天气预报信息,提供未来几天的天气状况,方便用户的出行预判. 1.2非功能需求分析 为了保证客户端能够长期.安全.稳定.可靠.高效的运行,天气客户端应该满足以下的需求: 1)系统处理的准确性和及时性 2)系统的开放性和系统的可扩充性 3

Android实践项目汇报(一)

推箱子NABC 1) N (Need 需求) 推箱子是一款来自日本的古老游戏,其设计目的是训练人的逻辑思维能力.游戏场景一般是设定在空间狭小的仓库中,要求把箱子摆放到指定位置.这就要求玩家巧妙地运用有限的空间和通道,合理地安排箱子的位置和移动次序才可能完成任务. 2) A (Approach 做法) (1)应用平台: Android 手机  (2) 开发工具: Android studio  Android Studio 是一个Android开发环境,基于IntelliJ IDEA.Androi

Android实践项目汇报(总结)

天气客户端开发报告 1    系统需求分析 1.1功能性需求分析 天气预报客户端,最基本就是为用户提供准确的天气预报信息.天气查询结果有两种:一种是当天天气信息,信息结果比较详细,除温度.天气状况外还可以提示穿衣建议.湿度.风向等信息,这样使天气信息更加完善:一种是未来几天天气预报信息,提供未来几天的天气状况,方便用户的出行预判. 1.2性能需求分析 为了保证客户端能够长期.安全.稳定.可靠.高效的运行,天气客户端应该满足以下的性能需求: 1)系统处理的准确性和及时性 2)系统的开放性和系统的可

Android实践项目汇报(二)

2项目相关技术介绍与分析 本部分对项目开发相关技术进行介绍分析,Android操作系统内容包括:系统架构及应用程序.开发过程应用技术包括:Android文件存储方式,调用有道API进行翻译. 2.1  Android操作系统 Android是一种以Linux为基础的开放源代码操作系统,主要用于便携设备.Android是一个完整.开放.免费的手机平台,其具有以下突出特点: 1)开放性:在优势方面,Android平台首先就是其开放性,开放的平台允许任何移动终端厂商加入到Android联盟中来.显著的

Android实践项目汇报总结(下)

微博客户端的设计与实现(下) 第四章 数据信息列表 4.1.1实体图 1)用户相关信息实体属性图如下所示: 2) 微博信息实体属性图如下图4-2所示: 4.2系统数据信息列表 本系统大部分数据从网络获取,包括用户信息.用户的相关信息.微博.评论. 1) 用户相关数据:包括用户ID.用户昵称.用户图标.最新微博信息.微博账号等. 2)用户授权认证数据: 第五章 系统详细功能实现 本应用主要实现了五个主要模块,包括程序启动模块,检测网络状态.应用登录模块用户可以使用授权配置和用户注册并且登录系统.主

android 实践项目三

android 实践项目三 本周我主要完成的任务是将代码进行整合,然后实现百度地图的定位与搜索功能.在这次实现的 图形界面如下: 在本周的工作中主要的实现出来定位与收索的功能,在地图中能实现了定位,显示当前的位置, 不知到为什么不显示地图,经过查找资料可能因为当前的SDK本版太高了,不匹配.所以在下周 图像的显示问题.下面是我的主要贴上我的布局代码 地图的布局: 本周的总结 做项目是学习知识最快的方式,即能让我们碰见各种问题,也让我们去解决各种问题.在项目中感觉自己 的水平有限,还需要更加努力的

Android 实践项目开发 总结

  Android 实践项目开发 总结 课程:移动平台应用开发实践  班级:201592  姓名:杨凤  学号:20159213 成绩:___________       指导老师:娄嘉鹏          实验日期 :2015.12.06. 实验名称:                   android 百度地图开发 实验目的与要求: 1.实现定位 2.查询公交路线       3.目的地查询 实验目的: 在这次的项目开发中,我做的软件主要功能是调用百度地图的接口,实现定位.查询公交路线 和查