收藏 分销(赏)

掌上书城的设计与实现--毕业论文.doc

上传人:胜**** 文档编号:2986128 上传时间:2024-06-12 格式:DOC 页数:40 大小:1.31MB
下载 相关 举报
掌上书城的设计与实现--毕业论文.doc_第1页
第1页 / 共40页
掌上书城的设计与实现--毕业论文.doc_第2页
第2页 / 共40页
掌上书城的设计与实现--毕业论文.doc_第3页
第3页 / 共40页
掌上书城的设计与实现--毕业论文.doc_第4页
第4页 / 共40页
掌上书城的设计与实现--毕业论文.doc_第5页
第5页 / 共40页
点击查看更多>>
资源描述

1、 1 唐山师范学院本科毕业论文唐山师范学院本科毕业论文 题题 目目 掌上书城的设计与实现掌上书城的设计与实现 学学 生生 李瑞青李瑞青 指导老师指导老师 葛卫军葛卫军 副教授副教授 年年 级级 20122012 级级 专专 业业 信息管理与信息系统信息管理与信息系统 系系 别别 数学与信息科学系数学与信息科学系 唐山师范学院数学与信息科学系 2015 年 9 月 2 郑重声明郑重声明 本人的毕业论文(设计)是在指导教师葛卫军老师的指导下独立撰写完成的。如有剽窃、抄袭、造假等违反学术道德、学术规范和侵权的行为,本人愿意承担由此产生的各种后果,直至法律责任,并愿意通过网络接受公众的监督。特此郑重声

2、明。毕业论文(设计)作者(签名):年 月 日 3 目目 录录 标题标题.1 摘要摘要.5 1 1 前言前言.5 2 2 概述概述.6 2.1 课题的背景及意义.6 2.2 课题背景.6 2.3 课题意义.6 2.4 研究成果 .6 3 3 开发环境开发环境.7 3.1 软件定义.7 3.2 开发平台简介.7 3.2.1 Android SDK 4.4 平台.7 3.2.2 开发工具 Eclipse.7 3.2.3 Java.7 3.2.4 SQLite 和 JavaWeb.8 4 4 系统分析系统分析.9 4.1 可行性分析.9 4.1.1 技术可行性.9 4.1.2 经济可行性.9 4.1.

3、3 社会可行性.9 4.2 需求分析说明.9 4.2.1 项目总体概述.9 4.2.2 具体需求.9 5 5 系统结构与模型系统结构与模型.10 5.1 设计实现的思路.10 5.2 系统结构设计.10 6 6 数据库设计数据库设计.13 6.1 E-R 图.13 6.2 数据库逻辑设计.13 4 6.3 数据库物理结构设计.14 7 7 总体设计总体设计.14 7.1 总体设计与说明.14 7.2 代码实现.16 7.2.1 SQLite 的代码实现.16 7.2.2 首启动欢迎页.17 7.2.3 主页面.19 7.2.4 其他页面.22 8 8 测试测试.23 8.1 测试方法简介.24

4、 8.1.1 根据是否需要执行程序 .24 8.1.2 按阶段划分 .24 8.1.3 按测试方法划分.24 8.2 系统测试中的问题及测试方法和解决办法.24 8.3 系统维护.25 8.4 测试结果.27 9 9 总结总结.37 参考文献参考文献.38 致致 谢谢.39 外文页外文页.40 5 掌上书城的设计与实现 李瑞青 摘摘 要要 该设计用了 Eclipse 作为开发工具,使用 Java 语言及安卓知识进行大致设计,先总体规划数据结构后逐步实现功能完成了一个掌上书城的手机 APP,在已有的某些应用基础上添加新功能,以适应客户对阅读软件的更多要求。前台用户可以在书城中查看图书并向书架里添

5、加、删除图书,查看图书时还可以添加笔记,在某个页面查看笔记、删除笔记及修改笔记。但目前该应用还有很多不理想、功能不完善的地方需要改进,例如阅读进度提示等。通过此设计,可以发现近几年安卓市场的火热,以及安卓应用的方便快捷。该应用继续开发下去一定会有更为广阔的前景,且它完全是可实现的,能让人们更方便更愉悦的阅读图书。关键词关键词 Java 安卓 掌上书城 1 1 前言前言 2007 年 11 月 5 日,Google 发布了基于 Linux 平台的开源移动平台Android。该平台由操作系统、中间件、用户界面和应用软件等组成,号称是首个为移动终端打造的真正开发的移动开发平台。Android 作为谷

6、歌企业战略的重要组成部分,将进一步推进“随时随地为每个人提供信息”这一企业目标的实现。Google 的目标是让移动通信不依赖与设备甚至平台。出于这个目的,Android 将补充 Google 长期以来奉行的移动开发战略;通过与全球的手机制造商和移动运营商结成合作伙伴,开发并推广移动服务。在 Android 开发方面,Android SDK1.6 r1 和 Android NDK1.6 r1 已发布,Eclipse 插件ADT Plug-in 已更新至 0.9.3 版本。Android SDK1.6 的 API Level 是 4,而 1.5 的是 3。SDK 1.6 的工程目录与 1.5 相同

7、,所以大多数基于 SDK 1.5 的应用程序可以不经修改直接在 SDK 1.6 修改,但如果涉及 API Level 的问题,就需要进行具体的分析。在 Android 终端设备方面,世界上第一款 Android 手机 G1 出自 HTC,此后 HTC 陆续推出了 6 HTC Magic G2、HTC Hero、HTC Tatoo 等机型,功能日臻强大。此外,摩托罗拉、三星、索尼爱立信、LG、华为、联想等大牌设备厂商也在积极筹备 Android 手机的上市。在国内,中国移动最早启动了基于 Android 平台的手机操作系统 OMS(Open Mobile System)的研发。而中国联通和中国电

8、信也紧追不舍,相应展开了基于 Android 的手机操作系统研发。运营商在开发 Ophone(中国移动)、Uphone(中国联通)、Cphone(中国电信)等手机操作系统的同时,也在积极部署相应的软件商店。软件商店是利润的主要来源,而优秀的应用程序时构成软件商店的基本要素,这就为国内的移动开发者提供了非常好的机遇。2 2 概述概述 2.1 2.1 研究背景研究背景 在这个信息高速发展的时代,手机越来越普遍,几乎是人手一部手机,有的甚至两部或更多。由于苹果手机的价格昂贵,大多数人用的都是安卓手机。手机更新换代快,而手机软件的更新就更迅速了。且目前大多数人因为手机等电子设备的方便更偏爱阅读电子书,

9、各类阅读软件应运而生,该阅读软件除了可以让用户读到想读的书外还可以有添加笔记更换背景音乐等等功能,未来发展前景良好。2 2.2.2 研究目的研究目的 为了满足广大用户对各类电子书的需求,针对当前安卓手机火热的市场前景,综合以往的开发经验以及前期调查,同时结合自己及其他用户使用阅读软件的感受,我设计并实现了该软件。该软件全面细致的分析了目前市场上同类型的其他应用的不足并加以改进,明确了要实现的具体功能,并适当的辅以界面和特效。使得整个应用更加协调美观实用。设计并实现一个掌上书城的项目,针对用户的需求适当的添加修改某些功能,以便让用户用的更方便。实现让用户随时随地看想看的电子书,记下看书时一瞬间想

10、法的笔记的功能。决定需求前,和多位资深小说爱好者交流过,发现目前的阅读 APP 存在只有阅读没有游戏缓解阅读疲劳,有时候找不到刚刚忘记添加进书架的书在哪里等等问题,我开发了这个对阅饼容易得到且添加了最近阅读书单的软件。希望大家用的满意。2.3 2.3 研究内容研究内容 本设计主要通过分析关键需求,确定主要问题,明确主要功能及方向,然后设计软件的结构和页面的布局,并分析数据库,通过 Java 语言来编写,来实现美观实用的书城 APP。2.42.4 研究成果及意义研究成果及意义 本设计实现了管理员后台添加图书、修改图书、删除图书等功能,以便用户查看图书并根据自己的喜好添加到书架中,用户还可对笔记进

11、行增删改查。虽然跟已经流行的某些阅读软件相 7 比还有不足之处,功能也相对不完善,但是软件重在一点点更新,我相信下一个版本会更好,且它提供了其他阅读软件没有的功能。对于现代人高信息化快节奏化的生活,很有调节及消除疲劳、休闲娱乐的功能。3 3 开发环境开发环境 3.1 3.1 软件定义软件定义 平台及版本:Android SDK 4.4.2 开发 IDE:Eclipse 使用语言:Java 数据库:SQLite 运行环境:Eclipse 模拟器 3.2 3.2 开发平台介绍开发平台介绍 3.2.1 Android SDK 4.4.2 与 iPhone 相似,Android 采用 WebKit 浏

12、览器引擎,具备触摸屏、高级图形显示和上网功能,用户能够在手机上查看电子邮件、搜索网址和观看视频节目等,比 iPhone 等其他手机更强调搜索功能,界面更强大,可以说是一种融入全部 Web 应用的单一平台。且 Android 是一个对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了 iPhone 等只能添加为数不多的固定软件的枷锁;同时与 Windows Mobile、Symbian 等厂商不同,Android 操作系统免费向开发人员提供,可节省近三成成本。3.2.2 Eclipse Eclipse 最初是 IBM 的一个软件产品,前期投入了 4000 万美金。Eclip

13、se 的设计思想是:一切皆为插件。它自身的核心是非常小的,其他所有的功能都以插件的形式附加到该核心上。Eclipse 平台是一个具有一组强大服务的框架,这些服务支持插件,比如 Java 开发环境插件(JDT)、插件开发环境(PDE)和其他的第三方插件(New tool)。它由几个主要的部 分构成:平台运行库、工作区、工作台、团队支持和帮助。3.2.3 Java Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。Java 语言主要有三大特点,多态、封装、继承。我个人理解为,Java 的多态主要表现在方法的重写和重载上,即 overlo

14、ad 和 override。重写是子类继承父类,重写父类的方法。而重载 8 是指方法名相同,只是参数类型不同,可以是参数数目不同,参数数据类型不同,也可以是两者都不同。封装就是封装属性或方法,大大增加了代码的安全性和可重复利用率。Java 中的继承和 C 语言中的继承不同,Java 中只允许单继承,即一个子类只能继承一个父类,但它可以实现多个接口,也就是所谓的单继承多接口,而 C 语言中子类可继承多个父类。这也体现了 Java 语言的面向对象特点,现实世界中随处可见的一种事物就是对象,对象是事物存在的实体,如人类、汽车、计算机等。人类解决问题的方式总是将复杂的事物简单化,于是就会思考这些对象都

15、是由哪些部分组成的。通常会将对象划分为两部分,静态部分和动态部分,静态部分及对象所具备的属性,例如我们大家,每个人都有自己的身高、体重、年龄、职业等描述,而且我们每个人还有自己的动作,我们可以跑动、哭泣、说话、大笑,这都是我们所具备的行为。而 Java 就是通过观察探讨对象的属性和所具备的行为来了解对象进行编程。3.2.4 SQLite 和 JavaWeb 该应用使用 SQLite 本地数据库,没有使用 JavaWeb 服务器。JavaWeb 是用 Java 技术来解决相关的 web 互联网领域的技术总和。Web 包括:web 服务器和 web 客户端两部分。Java 在客户端的应用现在使用的

16、很少,Java 在服务器端的应用非常丰富,比如 Servlet,JSP 和第三方框架等。SQLite 是一个轻量级的数据库,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中可能只需要几百 K 的内存就够了。它能够支持 Windows/Linux/Unix 等等主流的操作系统,同时能跟很多程序语言相结合,比如 Tcl、C#、PHP、Java 等,还有 ODBC 接口,同样比起 MySql、PostgreSQL 这两款世著名的开源暑假管理系统来讲,它的处理速度比他们都快。它的易使用性可以加快应用程序的开发,并使得小型应用程序能够完全支持复杂的 SQ

17、L。这一点对于小型设备空间的应用程序来说尤为重要。SQLite 支持事件,不需要配置,不需要安装,也不需要管理员,没有账户的概念,而是根据文件系统确定所有数据库的权限。这会使强制执行存储配额发生困难,强制执行用户许可变得不可能。4 4 系统分析系统分析 4 4.1.1 可行性分析可行性分析 4.1.1 技术可行性 Java 是如今最热门、最先进的的一种面向对象的新型程序设计语言。它是由 Sun Mierosystems 公司为开发网络而研制的发明的语言。该语言为我们提供了一种与平台无关、适 9 于分布式系统的开发和运行环境,主要用于 Internet 网络的编程。其程序可以在不同的平台上运行,

18、而不需要考虑其移植问题。Sun 公司正致力于将 Java 开发推广成一种 Internet 标准语法。Java 语言是简单的。Java 语言的语法与 C 语言和 C+语言很接近,使得大多数程序员很容易学习和使用 Java。另一方面,Java 丢弃了 C+中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别的,Java 语言不必使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。综上,我们可以看出用 Java 语言来编写该安卓程序技术上是可行的,该软件的功能目标基本可以完成,我们的开发人员技术也相对达标,通过详细的周期计划,该软件可以在一定的

19、期限内完成。4.1.2 经济可行性 该软件是手机端 APP,可以安装在多款手机上使用,以实现阅读小说,添加书架,随时随地添加笔记,记下看书时的任意有创意、有意义的想法,通过编辑笔记修改自己曾经撰写的笔记中的错误。或者删除笔记,查看自己的笔记列表。在阅读书籍的同时还可开启或关闭背景音乐。让用户在阅读的同时还可以享受温暖人心的轻音乐等等功能。硬件设备有:只需要一台带有Eclipse 软件的计算机,数款手机终端。开发费用,只需付负责开发的程序员工资以及软件完成后的推广费用,保守估计十万左右。但是现在用电子设备阅读图书的人群越来越壮大,我们完全有可能在后期获得更多的收益。而且当该软件推广后,带给企业的

20、影响是无法衡量的。因此在经济上,完全可以实行。4.1.3 社会可行性 掌上书城 APP 完全适应现代人的需求,并且有自己的功能,有最近书单,可查看最近阅读的图书,有背景音乐可根据自己的喜好播放或停止,还增加了一个易于过关的小游戏,让用户在读书读累的时候玩会小游戏,劳逸结合。该软件利用计算机网络及现在的安卓手机的火热,实现了足不出户在线阅读各种小说的功能,极大的方便了用户,就其前景和应用的人群广泛来说,它的社会可行性还是不错的。4.2 4.2 需求分析说明需求分析说明 4.2.1 项目总体概述 该软件分为前台用户和后台用户,后台用户即管理员,可以向数据库中增删改查图书,前台用户即普通用户,可以阅

21、读管理员添加的图书,且可以更改背景音乐等。4.2.2 具体需求 4.2.2.1 后台管理员 10 点击相应的按钮,对图书进行增删改查,并管理用户。4.2.2.2 前台普通用户 进入主页面,点击相应的按钮,跳转相应的页面,进行相应的操作实现笔记在数据库中的增删改查。数据库管理 用户注册信息数据管理 存储用户注册信息 验证登录信息 掌阅书城数据管理 图书的增删查以及个人笔记的增删改查 用户登录/注册 注册 注册一个用户,将用户信息存入数据库 登录 通过验证用户信息进入系统 5 5 系统结构与模型系统结构与模型 5.1 设计实现的思路设计实现的思路 (1)先确定系统要使用的开发工具,本系统使用的是

22、Eclipse,先搭好 Eclipse 的运行环境。(2)实现注册登录模块,这样才会有普通用户和管理员的区分,管理员是指定的。(3)实现笔记方面的模块。让用户更好的阅读图书。5.2 5.2 系统结构设计系统结构设计 (1)用户使用软件时,主页面结构如下:11 图 4.2-1 前台用户进入页面 (2)用户进入登录、注册页时,结构流程如下:图 4.2-2 前台用户注册登录页 (3)用户进入书城,浏览图书,并添加喜欢的图书到书架 图 4.2-3 前台用户进入书城页 12 (4)用户查看书架中的图书,点击进入详细图书内容页 图 4.2-4 前台用户详细图书内容页 (5)用户进入个人中心,查看笔记 图

23、4.2-5 前台用户个人中心页 13 (6)用户进入侧滑菜单页,游戏中心玩游戏。图 4.2-6 用户进入游戏中心页 6 6 数据库设计数据库设计 6.1 E6.1 E-R R 图图 E-R 如图所示:图 5.1-1 E-R 图 6.2 6.2 数据库逻辑设计数据库逻辑设计 (1)E-R 图转换为关系模型 关系的码用下划线标出。14 图书(图书编号,图书名称,图书内容,作者名称,用户名称);用户(用户编号,用户名称,用户密码);笔记(笔记编号,笔记题目,笔记内容,笔记日期,图书名称);6.3 6.3 数据库物理设计数据库物理设计 图书信息表 books,用于保存用户添加的图书信息。笔记表 bij

24、i,用于保存用户添加的笔记。用户信息表 user,用于保存用户信息。7 7 总体设计总体设计 7.1 7.1 总体设计说明总体设计说明 该软件使用 Java 基础语言,使用 Activity 和 layout 布局相结合,编写安卓软件。如图所示:(1)Activity 类文件如图:中文含义 类型 约束 字段名 编号 Number(5)主键 bid 图书名称 Varchar(20)Not null bname 图书内容 Varchar(100)Not null bcontent 作者名称 Varchar(20)Not null bauthor 用户名称 Varchar(20)Not null u

25、name 中文含义 类型 约束 字段名 编号 Number(5)主键 jid 图书名称 Varchar(20)Not null bname 笔记题目 Varchar(20)Not null jname 笔记内容 Varchar(20)Not null jcontent 笔记日期 date Not null jtime 用户名称 Varchar(20)Not null uname 中文含义 类型 约束 字段名 用户编号 Number(5)主键 uid 用户姓名 Varchar(10)唯一 uname 密码 Varchar(20)Not null upass 15 图 6.1-1 Activity

26、 类 (2)Layout 布局的实现,如图:16 图 6.1-2 Layout 布局 7.2 7.2 代码实现代码实现 7.2.1 SQLite 的代码实现 /db_books 是所连的数据库的名称 privateprivate staticstatic finalfinal String DBNAME=db_books;/构造方法 publicpublic SQLiteDBUtil(Context context,String name,CursorFactory factory,intint version)supersuper(context,name,factory,version);

27、/声明只带一个参数的构造方法 publicpublic SQLiteDBUtil(Context context)supersuper(context,DBNAME,nullnull,1);Override publicpublic voidvoid onCreate(SQLiteDatabase db)System.out.println(创建表);String userTablesql=create table users(userid integer primary key autoincrement,uname varchar(20)not null,upass varchar(20)

28、not null);db.execSQL(userTablesql);System.out.println(用户表创建完成);String bijiTablesql=create table biji(jid integer primary key autoincrement,bid varchar(20)not null,uname varchar(20)not null,jname varchar(20)not null,jneirong varchar(20),jtime date);db.execSQL(bijiTablesql);17 System.out.println(笔记表创建

29、完成);String booksTablesql=create table books(bid integer primary key autoincrement,bname varchar(20)not null,bcontent varchar(20)not null,bauthor varchar(20)not null,uname varchar(20)not null);db.execSQL(booksTablesql);System.out.println(图书表创建完成);/该方法用于数据库更新时使用,此处用不到,不改变即可 Override publicpublic voidv

30、oid onUpgrade(SQLiteDatabase arg0,intint arg1,intint arg2)此时数据库已经搭建完毕。我们可以先从底层界面写起。在此为了方便查阅,底层界面和Activity 类一同贴出。7.2.2 首启动欢迎页 该页面主要作用是美观,在此界面停留一定的时间后自动跳到主页面。如下所示:(1)Activity 代码如下:importimport java.util.Timer;importimport java.util.TimerTask;importimport android.app.Activity;importimport android.conte

31、nt.Intent;importimport android.os.Bundle;importimport android.view.Window;publicpublic classclass FirstActivity extendsextends Activity /该 oncreate 方法用于初始化 Override protectedprotected voidvoid onCreate(Bundle savedInstanceState)supersuper.onCreate(savedInstanceState);requestWindowFeature(Window.FEAT

32、URE_NO_TITLE);/去除标题 /绑定底层的布局文件 thisthis.setContentView(R.layout.layout_first);/从该页面跳转到下一个页面当中去 finalfinal Intent intent=newnew Intent(FirstActivity.thisthis,MainActivity.classclass);/实例化一个 Timer 对象 Timer timer=newnew Timer();TimerTask task=newnew TimerTask()Override 18 publicpublic voidvoid run()/开始

33、跳转,并且跳转后关闭原界面 startActivity(intent);finish();/跳转前在此页面停留 3 秒 timer.schedule(task,1000*3);底层页面布局如下,在此简单的介绍一下,其他页面布局不再详细介绍:LinearLayout 是流式布局,layout_width 和 layut_height 有四种形式,match_parent 和 19 fill_parent 用法相同,和上一层嵌套布局等高等宽,而 wrap_content 是根据所包含的内容的大小自适应,还有一种就是用户自定义一定数值的宽和高。Orientation 是它的摆放模式,有横向和纵向两种

34、。TextView 是文本组件,gravity 是组件的居中方式。到此,首启动页已经完成。7.2.3 主页面 主页面显示的是书架。代码如下:/首先添加属性 DrawerLayout mDrawerLayout;Button btnshucheng;ListView llistview;TextView txt_bname,txt_uname;ArrayListHashMap list;Override protectedprotected voidvoid onCreate(Bundle savedlnstanceState)supersuper.onCreate(savedlnstanceS

35、tate);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.layout_main);/注册组件 thisthis.btnshucheng=(Button)findViewById(R.id.btnshucheng);thisthis.txt_bname=(TextView)findViewById(R.id.txt_bname);thisthis.txt_uname=(TextView)findViewById(R.id.txt_uname);thisthis.llistview=(ListView)

36、findViewById(R.id.listview);/实例化数据库,并打开连接 SQLiteDBUtil dbutil=newnew SQLiteDBUtil(MainActivity.thisthis);SQLiteDatabase db=dbutil.getReadableDatabase();list=thisthis.getData();/定义一个适配器,用于在页面中显示数据 SimpleAdapter adapter=newnew SimpleAdapter(thisthis,list,R.layout.lilst1,newnew String bname,newnew inti

37、nt R.id.txt_bname);/绑定适配器 thisthis.llistview.setAdapter(adapter);/绑定监听事件 thisthis.llistview.setOnItemClickListener(newnew ListListener();initView();initEvents();/绑定事件源 btnshucheng.setOnClickListener(newnew BtnListener();20 /定义一个内部类,监听 listview 菜单 classclass ListListener implementsimplements OnItemCl

38、ickListener Override publicpublic voidvoid onItemClick(AdapterView arg0,View arg1,intint i,longlong arg3)HashMap map=list.get(i);/跳转到显示书籍页面,并传值 String bid=map.get(bid).toString();String bname=map.get(bname).toString();String bcontent=map.get(bcontent).toString();String bauthor=map.get(bauthor).toStr

39、ing();String uname=map.get(uname).toString();Intent intent=newnew Intent(MainActivity.thisthis,BooksneirongActivity.classclass);intent.putExtra(bid,bid);intent.putExtra(bname,bname);intent.putExtra(bcontent,bcontent);intent.putExtra(bauthor,bauthor);intent.putExtra(uname,uname);startActivity(intent)

40、;finish();publicpublic voidvoid OpenLeftMenu(View view)mDrawerLayout.openDrawer(Gravity.LEFT);mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED,Gravity.LEFT);privateprivate voidvoid initEvents()mDrawerLayout.setDrawerListener(newnew DrawerListener()Override publicpublic voidvoid onDraw

41、erClosed(View drawerView)/TODOTODO Auto-generated method stub 21 mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED,Gravity.LEFT);Override publicpublic voidvoid onDrawerOpened(View drawerView)/TODOTODO Auto-generated method stub /通过动画效果实现侧滑 Override pupublicblic voidvoid onDrawerSl

42、ide(View drawerView,floatfloat slideOffset)/TODOTODO Auto-generated method stub View mContent=mDrawerLayout.getChildAt(0);View mMenu=drawerView;floatfloat scale=1-slideOffset;floatfloat rightScale=0.8f+scale*0.2f;ifif(drawerView.getTag().equals(Left)/ViewHelper.setTranslationX(mContent,mMenu.getMeas

43、uredWidth()*slideOffset);ViewHelper.setPivotX(mContent,mContent.getMeasuredWidth();ViewHelper.setPivotY(mContent,mContent.getMeasuredHeight()/2);ViewHelper.setAlpha(mMenu,0.6f+0.4f*(1-scale);mContent.invalidate();ViewHelper.setScaleX(mContent,rightScale);ViewHelper.setScaleY(mContent,rightScale);els

44、eelse floatfloat leftScale=1-0.3f*scale;ViewHelper.setScaleX(mMenu,leftScale);ViewHelper.setScaleY(mMenu,leftScale);ViewHelper.setAlpha(mMenu,0.6f+0.4f*(1-scale);ViewHelper.setTranslationX(mContent,mMenu.getMeasuredWidth()*(1-scale);ViewHelper.setPivotX(mContent,0);ViewHelper.setPivotY(mContent,mCon

45、tent.getMeasuredHeight()/2);mContent.invalidate();22 ViewHelper.setScaleX(mContent,rightScale);ViewHelper.setScaleY(mContent,rightScale);Override publicpublic voidvoid onDrawerStateChanged(intint newState)/TODOTODO Auto-generated method stub );privateprivate voidvoid initView()mDrawerLayout=(DrawerL

46、ayout)findViewById(R.id.id_drawerLayout);/mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED,/Gravity.LEFT);classclass BtnListener implementsimplements OnClickListener Override publicpublic voidvoid onClick(View v)ifif(v.getId()=R.id.btnshucheng)/向书城跳转 Intent intent=newnew Intent(M

47、ainActivity.t thishis,ThirdActivity.classclass);/intent.putExtra(username1,uname1);startActivity(intent);finish();/该方法用于从数据库中读取数据并保存到集合中,便于显示 privateprivate ArrayListHashMap getData()ArrayListHashMap list=newnew ArrayListHashMap();SQLiteDBUtil dbutil1=newnew SQLiteDBUtil(MainActivity.thisthis);SQLit

48、eDatabase db2=dbutil1.getReadableDatabase();23 String sql=select*from books;Cursor cursor=db2.rawQuery(sql,newnew String);whilewhile(cursor.moveToNext()HashMap map=newnew HashMap();map.put(bid,cursor.getInt(0);map.put(bname,cursor.getString(1);map.put(bcontent,cursor.getString(2);map.put(bauthor,cur

49、sor.getString(3);map.put(uname,cursor.getString(4);list.add(map);returnreturn list;7.2.4 其他页面 其他的布局以及代码不再详细介绍,需要注意的是:I 侧滑菜单继承的是 Fragment 而不是 Activity,代码如下:publicpublic classclass MenuLeftFragment extendsextends Fragment implementsimplements View.OnClickListener 继承 Fragment 的同时,实现了一个接口,用于监听点击事件。II 在使

50、用侧滑菜单时需要向 lib 库文件夹下导入一个三方 jar 包,如图所示:图 6.2-1 引进侧滑需要的 Jar 包 III 书城切换页继承的是 ActivityGroup 而不是 Activity,代码如下:publicpublic classclass ThirdActivity extendsextends ActivityGroup 因为 ActivityGroup 在高版本的安卓开发工具中已逐渐被弃用,所以它会有删除线。但它仍可使用。8 8 测试测试 随着市场对软件质量的不断提高,软件测试不断受到重视,但是由于总体上,国内软件 24 项目不规范,导致重视编码和轻视测试的现象,对于软件

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服