资源描述
.
目 录
前 言1
第一章相关理论与关键技术4
1.1 Andriod特征4
1.2 Andriod架构5
1.2.1 关键应用程序.....................................................................6
1.2.2 应用程序框架......................................................................6
1.2.3C/C++函数库......................................................................6
1.2.4 Java程序运行环境................................................................6
1.2.5Linux核..........................................................................6
1.3 Andriod应用的构成和工作机制6
1.4 Andriod手机平台控件研究9
1.4.1 Android系统控件与自定义控件的比较研究. ...............................9
.1.4.2 Android 自定义控件的实现的研究. .........................................9
第二章 手机电子阅读器需求分析 11
2.1 概述11
2.2 手机阅读器功能需求11
2.2.1书籍列表和日志列表需求分析..................................................11
2.2.2 书写界面 .........................................................................12
2.2.3 书签列表 ........................................................................12
2.2.4 阅读界面 .........................................................................12
2.3 手机性能需求12
2.4 数据需求13
第三章 手机电子书阅读器总体设计 14
3.1 技术框架设计14
3.2 功能模块设计..............................................................14
- 42 - / 49
3.3 数据库介绍................................................................15
第四章 手机电子书阅读器的设计与实现 16
4.1项目结构 ..................................................................16
4.2项目描述 ................................................................. 17
第五章 项目技术总结28
5.1技术创新与特点28
5.2程序的扩展功能28
5.3 个人收获与体会29
参考文献30
致 31
android系统下电子书阅览器
电子信息工程系 电子092201H 裴志丹 指导教师:胡莉
摘 要:在科技日益发达的今天,社会竞争越来越激烈,这要求人们不断的摄取信息来充实自己。要求人们能随时随地的了解并获取所需的信息。在这种情况下,电子书阅读器刚好满足了人们便捷地获取信息的需求。本文设计的手机电子书阅读器是基于Android平台设计的,Android平台是目前发展最快、最具市场前景的智能手机操作系统。
本系统是根据Google Android 平台用户的喜好和其平台的特性而设计的,在Google Android平台自带的SDK2.3.1环境下,运用Eclipse,Photoshop等相关工具进行开发的。本文介绍了Google Android 开发的流程,讨论了基于Android平台应用程序开发的关键技术,对手机电子书阅读器做了详细的需求分析,并重点介绍了基于Android 平台的手机电子书阅读器的总体设计,主要包括手机电子书阅读器的架构设计、各功能模块的设计与实现。
本文设计的手机电子书阅读器通过了功能和性能方面的测试,证明了本文设计方案的可行性。通过对基于Android平台手机电子书阅读器的设计与实现的介绍,希望能为今后开发出功能更强大的阅读器提供有益的借鉴。
关键词: Android,电子书阅读器,SDK
Ebook reader on android
School of Applied Science Electronic092203H PeiZhidan Director:huli
ABSTRACT:Today,it’s a more advanced in technology, increasingly competitive society, which requires people to the intake of information to enrich themselves. Requires people to always be in the know and get the required information. In this case, the news reader just to meet the needs of people know of external objects. In this paper the ebook reader is mobile phone design based on the Android platform of the design, Android platform is the fastest developing, the most market prospect of smartphone operating system.
In this system, Google Android platform is based on the user's preferences and characteristics of its platform designed, in Google Android platform, comes with SDK2.3.1 environment, the use of the Eclipse, PhotoShop and other tools for development. This article introduces the development process of the Google Android, discusses the application development based on the Android platform of the key technology, to do a detailed analysis of the demand for Mobile phone ebook and introduces the focus on Mobile phone ebook reader overall’s design. includes the ebook reader mobile phone design mainly, architecture design and the function of the system.
In this paper the ebook reader through mobile phone design of the function and performance test, proved the feasibility of this design. Through to the Android platform based on mobile phone ebook reader design and implementation of the introduction, the hope for the development in the future more powerful offer beneficial reference for the reader.
Keywords :Android,E-book reader,SDK
前 言
手机已经成为了生活中不可缺少的通讯设备,没有手机有时会让人觉得寸步难行。手机不仅具备传统的打、发短信等基本的功能,而且具有强大的处理能力和可扩展能力,能进行电子图书的阅览、基于3G网络实现高速数据传输、第三方浏览软件的运用等,越来越多的功能和业务将被开发出来并大规模的应用。正基于此,Google于2007年11月5日宣布推出基于Linux平台的开源手机操作系统,号称首个为移动终端打造的真正开放和完整的移动软件——Android。
当今社会手机是已经成为了生活中不可缺少的通讯设备,随着科技的发展手机的功能也越来越强大,手机电子阅读器是手机中的一种重要软件,其真正意义上指的是一个可以阅读设备,是专门用来阅读电子书的,随着二十一世纪数字信息化的不断兴起,电子阅读器的市场竞争也变得越来越激烈。
时下社会的进步更是让人们的生活越来越忙碌,抱着厚厚的书本穿梭于大街小巷已经不再适应这个忙碌的时代。当人们奔波于不同的城市、出没在不同的场所、搭乘不同的交通工具的时候,手机电子阅读器就可以为人们提供方便快捷的阅读平台,它的作用就像一座桥梁,在我们不方便利用书本或者网络的时候提供一个更快更方便的平台,让人们能随时的阅读自己喜欢的电子图书。
就是因为手机电子阅读器方便快捷的优点,使得人们把用手机电子阅读器阅读阅读电子书当做当科技时代的一种时尚。这也让手机电子阅读器在人们的生活中扮演的角色越来越重要。
二十世纪七十年代,著名软件工程师Andsan.Fandamu在美国布朗大学阐述通过计算机创建和阅读文件的时候首次提出了电子书
(electronic Book,eBook)这一术语。电子书是利用现代信息技术创造的全新出版方式,将传统的书籍方式以数字的形式通过计算机网络实现。阅读器指的是一个设备,是专门用来看电子书的。随着数字化的不断兴起,电子阅读器市场的竞争变得越来越激烈。
最早出现在市场上的电子书阅读器是美国Soft Book公司的Soft Book和Nov.Media公司的RocketBook
。它们都具有美观的外型形状像一本古典的精装书,存储容量分别为8MB和32MB的存,分别可以容纳5,000和32,000多个电子页的信息,与计算机串口相连,可以从Soft Book和Nuvo Media的网上售书连锁店,下载书籍和期刊。2000年8月,美国微软公司发布了一个可供人们阅读电子书的应用软件Microsoft Reader,这种阅读器软件的核心技术是Clear Type
,微软称之为“对液晶显示屏具有革命性的变革”,它是一种能使文字在显示器上的显示效果像印在纸上一样平滑清晰的字符显示技术,这种技术大大提高了屏幕的分辨率和清晰度,使读者能够获得最接近传统书的阅读效果。同时南开大学津科公司开发了一款阅读不耗电的电子书阅读器,该电子书阅读器已经面市并将投人大规模生产。它采用了华人科学家吴葆刚博士发明的“多稳态液晶显示器
”,并在国际上首次实现了“翻页不耗电”阅读显示。除了上述几种电子书阅读器之外,Every Book,Librius,Glass Book等公司也都推出了自己的电子书阅读器和阅读软件,出版集团和美国通公司联手合作推出了中文电子“掌上书屋”。随着这些阅读器的出现,使得电子图书、期刊这些原本只能在PC上阅读的东西突然变得可以移动,电子书籍与纸制书籍之间的距离缩短了一大步。同时,电子书阅读器更方便和灵活的使用功能也在不断地研究推出,例如,可以在阅读的时候加批注、书签、字体可缩放、旋转和支持声音播放等等。
目前主流的电子书阅读器有熊猫看书,它是网龙公司自主研发并出品的一款免费阅读软件,支持在线书籍查询,在线书籍分类阅读,书籍收藏与撤销收藏,新闻分类阅读,新闻订阅分类与撤销订阅。是基于iPhone/Windows Mobile/Symbian/
Android/M8/Kjava等多手机平台上的全能免费阅读软件。全面支持TXT、ZIP、HTML、UMD、NDB等多种格式,同时还支持JPG、BMP、PNG、GIF等多种格式图像查看。自适应中文编码,自动排版,支持RSS新闻离线阅读。
电子阅读现在是国家和业非常重视的一个新兴产业,它与国家提倡的“自主创新,增强核心竞争力”、开展低碳、节能环保的社会环境相吻合,很多厂商、科研院所都将目光放到了这个原本没有足够重视的领域上。同时,手机电子书阅读器作为广大网民经常使用的一个工具,在手机阅读市场逐渐扩大的时候,人们对于阅读的方便性和各种功能设置都有了更高的要求。
虽然现在手机电子书阅读器功能己经比较完善,但是离人们的期望还存在较大的距离,比如改善人们的阅读环境,使人们读起来不感到疲倦而且充满乐趣,同时现在的阅读器多媒体性能还不够完善。因此,手机电子书阅读器的应用研究还大有潜力可挖。
本文共分为五部分,容安排如下所示。
第一部分绪论,主要介绍本课题研究的背景与意义,国外研究现状,本文的组织结构与安排。
第二部分相关理论与关键技术,介绍了Android特征,Android架构和Android应用的构成和工作机制等容,研究了Android控件。
第三部分手机电子书阅读器需求分析,主要介绍了阅读器各功能模块需求。
第四部分手机电子书阅读器总体设计,分别从这几个角度进行描述:软件架构图,软件结构图和功能模块设计。
第五部分手机电子书阅读器详细设计与实现,主要介绍了开发环境,关键模块代码实现和系统测试。
第六部分结语,对全文进行了总结和展望。
第一章 相关理论与关键技术
随着计算机的广泛运用,手机市场的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来,但是很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,比如CPU,存等的占用率过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。针对以上各种弊端,选择了开发多语种的音频视频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户(如听歌,看电影)的需求,除了能播放常见格式的语音视频文件,高级功能:还能播放RMVB格式的视频文件。此外,还能支持中文、英文等语言界面。
Android是一个移动设备的软件平台,是由Linux+Java构成的开源软件,它提供包括SDK、Key Apps、Middleware、Linux Kernel四个部分在的全套手机软件方案。它开放了基于Linux核以上的开发工具,从而保证了容的可移植性和多样性。Android平台为开发应用程序提供了一套很好的框架,我们可以在这个平台的基础上开发不同的应用程序,也可以开发新的组件供应用程序调用
。
1.1Android特征
Dalvik虚拟:Android采用的Java虚拟机是自主开发的代号为Dalvik的虚拟机技术,在保证API方面兼容的同时Dalvik针对移动手机进行了大幅优化,占用资源更小,运行效率更高。
嵌浏览器:基于开源的浏览器网页排版引擎WebKit。
优化的图形:强大的自定义二维图形库。基于OpenGL ES 1.O标准的3D图形功能,在移动3D开发中有着至关重要的地位。
SQLite数据库:SQLitet提供结构化的数据存储。它是一款轻型免费的且开源的数据库,它的设计目标是嵌入前言式的,它占用的资源非常低、需要的存空间少、处理速度比较快和支持事务处理功能等。
多媒体支持:支持各种通用的音视频和静态图像格式,如MP3、JPG、PNG等。Open Core是Android多媒体框架的核心,所有Android平台的音视频采集,播放的操作都是通过它来实现的。通过Open Core,程序员可以方便快速的开发出想要的多媒体应用程序。
GSM技术:(依赖硬件)Global System for Mobile Communications,全球移动通讯系统,俗称“全球通”,是第二代移动通信技术,其开发El的是让伞球各地可以共同使用一个移动网络标准,让用户使_一部手机就能行遍全球。
蓝牙,EDGE,3G,and WiFi是一种短距离的无线连接技术,在短距离可以实现话音和数据的无线传输。EDGE(EnhaIlced Data Rate for GSM Evolution),是增强型数据速率GSM演进技术。
Camera,GPS,compass,and accelerometer:(依赖硬件)GPS(Global Positioning System)全球定位系统。它是一个由覆盖全球的24颗1J星组成的卫星系统。Compass是个开放源代码的JAVA搜索引擎框架。强大的开发环境:包括一个设备模拟器,调试工具,存和性能检测,以与EclipseIDE的开发插件。Eclipse是个集成开发环境。
1.2 Android架构
Android的架构是Linux核、C/C++函数库、Dalvik虚拟机、应用框架以与关键应用程序构成的,如图1所示,通过编译基于框架的应用程序可以降低开发负荷。应用软件原则上是在Dalvik VM上运行的。
图1.1 Android的架构
1.2.1 关键应用程序
Android平台包含一些关键应用程序,如收发客户端程序、短信收发程序、日历和网页浏览器等,开发者可以在其平台上开发更多有特色的应用程序。开发语言是Java。
1.2.2 应用程序框架
Android应用程序的开发基于框架和组件。Android本身已在其框架中提高了许多的组件供应用程序调用,当然开发者也开放新的组件,并将组件放入应用程序框架中,以供自己和其它应用程序调用。
1.2.3 C/C++函数库
Android应用程序框架之下是一套C/C++函数库,它们服务于Android应用程序组件,其功能通过组件间接提供给开发者。这些函数库包括:标准C函数库、媒体功能库、浏览器引擎、2D和3D图形库、基于WEB应用的的安全协议SSL、用于点阵和矢量字体渲染的FreeType以与SQLite引擎等。
1.2.4 Java程序运行环境
Android的Java程序运行环境包含一组Java核心函数库与Dalvik虚拟机,它们有效地优化了Java程序的运行过程。所有的Android应用都运行在它自己的进程里,该进程是一个Dalvik虚拟机的实例,Dalvik被设计成能在一台设备上高效的运行多个虚拟机实例。Dalvik虚拟机的可执行文件被封装成Dalvik可执行格式(.dex)。这是被优化过的最小存依赖的格式。Java编译器(dx工具)将注册了的和运行时用到的类编译成.dex格式。Dalvik虚拟机依赖于底层Linux核提供的功能,如线程机制,和存管理机制等。
1.2.5 Linux核
Android系统平台是基于优化了的Linux核,是其系统平台的核心。它提供诸如存管理、进程管理、设备驱动等服务,同时也是手机软硬件的连接层,提供了一个屏蔽层用于屏蔽硬件和上层软件。
1.3 Android应用的构成和工作机制
对于一个Android应用程序来说,是由Activity、 Intent Receiver 、Service、Content Provider四部分组成,但并不是每一个Android应用程序都必须由这四部分组成。在应用程序中使用时,需要在配置文件AndroidMainfest.xml中进行配置。这个配置文件是每个Android应用程序所必需的,用于定义应用程序的组件、组件的功能以与必要条件等。
1. Activity
Activity是构成应用程序中最重要的构造块, 在Android应用程序中,几乎都是通过Activity来与用户进行交互,所以Activity主要负责的就是创建与用户进行交互的显示窗口,你可以在这些窗口里通过调用setContentView(View)方法来显示你自己的用户界面。
图1.2Activity状态变换路径图
(1)活动生命周期
活动(Activity)在系统中以活动栈的形式进行管理。当一个新的活动启动后,被放到了栈项,成为了运行活动,而新活动之前的活动在活动栈里总位于新活动之下,直到新的活动退出才重新回到前台。从图2 Activity状态转换路径图中可以看出,Activity有三个关键的循环:
1)活动的整个生命期:从首次调用onCreate(Bundle)开始,到最终调用onDestroyO结束。在onCreate()中进行所有初始化,在onDestroyO时进行清理工作,释放资源。
2)活动的可见生命期:从调用onStart()开始,到onStop()被调用为止。在这段时间,即使活动不与用户进行交互,用户也可以在屏幕上看到它。在这两个方法调用之间,可以维护活动显示给用户的资源。onStart()和onStop()方法可以多次调用,因为活动随时可以在可见和隐藏之间进行转换。
3)活动的后台生命期:从调用onResume()开始,到onPause()被调用为止。在这段时间活动处于其它所有活动之前,并与用户进行交互。一个活动可以不断在resumed状态和paused状态之间变换。
(2)活动之间的切换
Android使用了Intent类来实现活动之间的切换工作。Intent负责对应用中一次操作的动作、动作涉与的数据和附加数据进行描述。根据Intent的描述,负责找到对应的组件,将Intent传递给调用的组件并完成组件的调用。因此,Intent起着一种媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。在应用中,我们可以以两种形式来使用Intent:直接Intent,指定了component属性的Intent,通过指定具体的组件类,通知应用启动对应的组件。间接Intent,没有指定comonent属性的Intent,则需要包含足够的信息,这样系统才能根据这些信息,在所有的可用组件中,确定满足此Intent的组件。
2. Intent Receiver
Intent Receivert是用于对外部事件的响应,当外部事件发生时,会使用NotificationManager通知用户。当一个Intent Receiver被触发时,系统会在需要的时候启动对应的应用程序。如在本系统中,当用户正在其它界面进行操作时,有好友发送消息过来,就会以通知的形式发送到当前界面的正上方来通知用户。各种应用还可以通过使用Context.broadcastIntent()将它们的Intent Receiver广播给其它的应用程序,实现应用之间的通讯。
3. Service
Service是提供连续信息的应用程序。它是运行于应用程序后台的服务,在用户进行其它活动的时候,这个服务将一直运行在基于Android平台的即时通讯系统的研究与实现后台直到用户停止该服务或服务运行结束。本系统客户端扩展功能的阅读器就是采用Service来进行设计和开发的,使用户可以边聊天边看书。
4. Content Provider
Content Provider应用程序能够将它们的数据保存到文件、SQL数据库和其它的存储设备中。当应用程序需要使用存储设备中的数据时,可以使用Content Provider来完成。使用Content Provider能够灵活的替换底层使用的存储设备,使开发者可以专著于应用逻辑的开发,不用考虑底层存储设备的细节,从而使应用系统具有良好的数据。
1.4 Android手机平台控件研究
1.4.1 Android系统控件与自定义控件的比较研究
在Google Android 中给出了非常多的绚丽的控件,但是在某些时候需要的实现某些功能的时候,系统的控件显得有些笨拙和难以控制,如,在本系统中,本打算使用系统自带的控件TabLayout 显示频道,但是现在的过程中,发现,该控件的每一个Tab之间有一定距离的间隔,且每一个Tab上面的图片很难控制其显示的方式和显示的效果,因此该综合美观和操作性的基础上,决定不用该控件来显示频道切换界面。而才用笔者自定义的控件——TabHost ,此控件从需求上必须能弥补系统控件TabLayout 的不足,且能易于用户操作。
1.4.2 Android 自定义控件的实现的研究
在Google Android 移动平台中,自定义控件都大致可以分成三部分。第一,界面的实现;第二,功能的实现;第三,控件的调用。
(1)界面的实现。在Google Android 平台中所有的控件都是继承了View这个超类,所以在本软件自定义一个控件的时候也需要继承这个超类,但是有些情况下不需要继承这个超类而是继承它的子类,如基于Google Android 平台的手机电子书阅读器中,就继承了这个超类的子类ViewGroup,即:public class TabController extends ViewGroup{}。基于此我们就得到了本系统要实现的那个控件的最基本的那部分——界面的实现。
(2)功能的实现。要实现一个控件,让其能产生特定的效果,本系统需要自己来重写父类某些甚至是全部的构造函数,如在基于Google Android 平台的电子书阅读器中,笔者就重写了
protected void onLayout(boolean changed, int l, int t, int r, int b) {
………
}
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
……….
}
protected void onFinishInflate() {
…………
}
等方法。在方法中实现所需的功能,这样一个自定义控件就好了。
(3)控件的调用。在Android 系统中,控件的调用非常的方便,如系统控件TextView,其调用方式如下:
<TextView…….>
</ TextView >
但是当使用自定义控件的时候,其调用方式就与其有很大的区别。在自定义控件中,其调用的形式是通过命名空间的形式来进行调用的。如,在基于Google Android 移动平台的手机电子书阅读器中,调用自定义控件的方式如下:
<.baina.viewtools.TabController
.......
>
</ .baina.viewtools.TabController >
第二章 手机电子阅读器需求分析
为了开发出真正满足用户需求的软件产品,需要对开发产品做出需求分析。对软件的需求的合理把握是软件开发周期中非常重要的一个环节,本章将对手机阅读器作较为全面的需求分析。
2.1 概述
随着手机功能不断增强,手机阅读器已成为智能手机重要软件之一。开发一款符合广大用户需求的手机阅读器有很好的市场前景和意义
本项目是以Java语言为基础,结合Android开发平台,并利用Android提供SDK,实现在Android平台上的手机阅读器。
该项目不仅满足了普通电子书阅读器的阅读功能还添加了书写功能。可以识别txt格式和doc格式的文件;可以对书籍进行删除;对于图书的阅读可以选择不同的书纸背景;对阅读的字体可以进行大小,颜色的选择设置;
该系统还有记忆功能,利用Android自带的Sqlite数据库,对书签进行存储;还有一些常用的软件功能如:旋转屏幕、后退和退出等。
2.2 手机阅读器功能需求
该开发项目作为Android平台上的应用软件,它具有与用户交互的界面,所以此阅读器可以从用户操作的界面分为四部分:书籍列表界面、日志列表界面、书写界面、书签列表界面和阅读界面。我们从这些界面分开进行分析。
2.2.1书籍列表和日志列表需求分析
书籍列表和日志列表功能一样,在SD中添加图书到列表之中。它们用例图如下图2.1所示。
添加
删除
用户
打开
进入阅读界面
图2.1 用户需求表
2.2.2 书写界面
书写界面里是对读书后的感想、今天心情的记录或者编写自己的书籍,保存在SD卡中,显示在日志列表中。我们也可以对写过的书籍进行追加编辑。
2.2.3书签列表
书签列表中列出我们阅读书时以方便下次阅读而的保存的书签。
2.2.4阅读界面
在阅读界面中我们可以调整字体大小、字体颜色、设置背景、阅读界面的旋转、关于、退出等操作。用例图如图2.2所示
字体大小
字体颜色
用户
界面背景
关于
退出
界面旋转
后退
图2.2 用户功能表
2.3 手机性能需求
1.系统要求
Android系统2.2版本以上,对以后继续进行升级开发有可延续性。
2.灵活性
软件基于Android操作系统,是基于组件的开发方式。
3. 数 据 库
Android自带数据库SQLite。
4.时间特性的要求
软件的速度要在用户可接受的围能扩展需求。
5.软件特性要求
软件运行速度要在用户可接受的围之,对流量、电量等消耗要在用户可接受围之。
2.4数据需求
1.电子书存储到SD卡
2.书签存储到数据库中,存储着图书地址,页号
3.背景图片在项目本身
第三章 手机电子书阅读器总体设计
3.1 技术框架设计
该项目是基于Android应用程序框架,并且采用模块化的设计模式,这种设计模式,给以后项目扩展和维护带来了很大的便利。通过对该项目的主要功能分析分为书籍和日志管理、阅读管理、书写书签管理,结构图如图3.1所示。
电子书阅读器
书籍和日志管理
阅读管理
书签管理
扫描添加
删除书籍
打开阅读
字体大小
字体颜色
阅读背景
添加书签
关于
后退界面
删除书签
退出应用
书写日志
书写管理
图3.1 技术框架表
3.2 功能模块设计
根据系统的总体结构图,对其功能进行如下设计。
1. 书籍和日志管理模块
书籍和日志模块虽然不在同意界面上,但是他们的功能大致一样。都是对SD卡的文件夹进行扫描显示列表,可以删除文件和文件的容读取。
2. 阅读管理
在列表中选中文件进行读取,阅读界面显示文件容。可以对阅读字体的大小、颜色;阅读界面背景;书签的添加和一些应用程序应该具有的一些功能进行设置等。
3. 书写管理
我们可写日志或者写书到SD卡中
4. 书签管理;
书签的添加时在阅读界面进行添加到SQLite数据库中,在书签列表中我们显示出数据库中的书签。对书签使用和删除操作。
3.3 数据库介绍
我们使用Android自带的SQLite数据库。我们使用数据库只需要存放书签。图书在SD卡中存放,并不放在数据库中。
建立数据库的名称:book.db只包括1表:
Book_mark表:
属性
数据类型
主键
_id
Integer
Yes
Bookname
Varchar
No
mark
Varchar
No
url
Varchar
No
第四章 手机电子书阅读器的设计与实现
4.1项目结构
项目在编写是的代码结构。如图4.1所示:
图4.1 项目结构表
图4.1(续) 项目结构表
4.2项目描述
A) 数据库的实现
由于只有书签才使用了数据库,所以建立的数据库是十分简单的。建表语句:
String sql="create table book_mark(_id integer primary key autoincrement,bookname,mark,url)";
B) 界面监听实现
1. 主页面
主页面包含书籍模块、日记模块、书写模块和书签模块。用选项卡对这四个模块相互切换代码:
ReaderActivity.activityList.add(this);//添加该Activity到集合中
host=getTabHost();
host.setBackgroundResource(R.drawable.a5);
final TabSpec tabSpec1=host.newTabSpec("ts1");
tabSpec1.setContent(new Intent(HomeActivity.this,BookListActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
tabSpec1.setIndicator("图书列表",getResources().getDrawable(R.drawable.b_list));
final TabSpec tabSpec2=host.newTabSpec("ts2");
tabSpec2.setContent(new Intent(HomeActivity.this, NotesListActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
tabSpec2.setIndicator(“日志列表",getResources().getDrawable(R.drawable.note));
TabSpec tabSpec3=host.newTabSpec("ts3");
tabSpec3.setContent(new Intent(HomeActivity.this,WriteNoteActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
tabSpec3.setIndicator("写意生活",
getResources().getDrawable(R.drawable.writer));
TabSpec tabSpec4=host.newTabSpec("ts4");
tabSpec4.setContent(new Intent(HomeActivity.this,BookMark.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
tabSpec4.setIndicator("书签列表",getResources().getDrawable(R.drawable.bookmark));
展开阅读全文