![手機(jī)電子書閱讀器設(shè)計(jì)_圖文文庫_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/3/c999eab0-6890-4edb-8661-eae044c8c194/c999eab0-6890-4edb-8661-eae044c8c1941.gif)
![手機(jī)電子書閱讀器設(shè)計(jì)_圖文文庫_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/3/c999eab0-6890-4edb-8661-eae044c8c194/c999eab0-6890-4edb-8661-eae044c8c1942.gif)
![手機(jī)電子書閱讀器設(shè)計(jì)_圖文文庫_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/3/c999eab0-6890-4edb-8661-eae044c8c194/c999eab0-6890-4edb-8661-eae044c8c1943.gif)
![手機(jī)電子書閱讀器設(shè)計(jì)_圖文文庫_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/3/c999eab0-6890-4edb-8661-eae044c8c194/c999eab0-6890-4edb-8661-eae044c8c1944.gif)
![手機(jī)電子書閱讀器設(shè)計(jì)_圖文文庫_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/3/c999eab0-6890-4edb-8661-eae044c8c194/c999eab0-6890-4edb-8661-eae044c8c1945.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、學(xué)號13080201282015-2016學(xué)年第二學(xué)期網(wǎng)絡(luò)應(yīng)用開發(fā)課程設(shè)計(jì)報(bào)告題目: 專業(yè): 班級: 姓名: 指導(dǎo)教師: 成績:手機(jī)電子書閱讀器設(shè)計(jì)網(wǎng)絡(luò)工程13級(1)班孫陽陽朱毅計(jì)算機(jī)學(xué)院2016年6月1日1設(shè)計(jì)內(nèi)容及要求11.1課題提出的背景口的及意義11課題提出的背景11.1.2課題捉岀的目的11.2設(shè)計(jì)思路及研究方法11.2.1設(shè)計(jì)思路11.2.2研究方法12概要設(shè)計(jì)22軟件的基本功能耍求22.2系統(tǒng)架構(gòu)32.3開發(fā)環(huán)境33設(shè)計(jì)過程43總體軟件結(jié)構(gòu)設(shè)計(jì)43.2接口設(shè)計(jì)53.2.1外部接口53.2.2內(nèi)部接口63.3數(shù)據(jù)庫設(shè)計(jì)63.3.1數(shù)據(jù)模式設(shè)計(jì)63.3.2數(shù)據(jù)表格設(shè)計(jì)63.3.3表
2、的貝體設(shè)計(jì)73.3.4數(shù)據(jù)字典83.4軟件設(shè)計(jì)模型83.5軟件維護(hù)設(shè)計(jì)94系統(tǒng)功能模塊的設(shè)計(jì)與實(shí)現(xiàn)94.1關(guān)鍵技術(shù)94.1.1 android 平臺及 java 語言94.1.2屮介軟件104.1.3四大組件104.1.4 sqlite3 數(shù)據(jù)庫114.1.5 tomcat 服務(wù)器114.2歡迎界面的實(shí)現(xiàn)114.3主控制類的實(shí)現(xiàn)114.4工具類的設(shè)計(jì)124.5閱讀界面的實(shí)現(xiàn)124.6找書功能的實(shí)現(xiàn)134.7書簽功能的實(shí)現(xiàn)144.8設(shè)置字體大小功能的實(shí)現(xiàn)164.9更換背景圖片以及設(shè)置字體顏色功能的實(shí)現(xiàn)165設(shè)計(jì)結(jié)果166設(shè)計(jì)總結(jié)21參考文獻(xiàn)231設(shè)計(jì)內(nèi)容及要求1.1課題提出的背景目的及意義1課題
3、提出的背景在這個(gè)信息化的時(shí)代,it業(yè)已經(jīng)成為世界發(fā)展的主流,我們對信息技術(shù) 的依賴遠(yuǎn)遠(yuǎn)超過了對我們自己的依賴,讓算機(jī)和手機(jī)已經(jīng)成為我們仃常生活中 不可缺少的獲得信息的渠道。正因?yàn)槿绱耍鞣N各樣的軟件層出不窮,我們的 生活也因?yàn)楦鞣N各樣的軟件變的更有滋有味。不缺乏娛樂性,也不缺乏教育意 義,讓我們從這些軟件中受益匪淺,使我們看到了相比以前的巨大進(jìn)步。我們 的依賴性也越來越大,越來越離不開這些給我們提供口常信息的工具。手機(jī)也 已不再僅僅是簡單的人與人通話的工具,而是在很大程度上成為了我們獲取信 息的一個(gè)更好的渠道。開發(fā)一款好的手機(jī)軟件是相當(dāng)必要的。以前我們看看雜 志,小說都要去圖書館借閱,而口時(shí)間
4、有限,很不方便;而現(xiàn)在是在電腦上或 者手機(jī)上看朵志,看小說,文檔。以此看來,一個(gè)好的手機(jī)閱讀器軟件的開發(fā) 是相當(dāng)有必耍的。1.1.2課題提出的目的此次設(shè)計(jì)的口的很明顯,就是給予閱讀者更大的便利性,閱讀者不用再到 處拿著一本厚厚的書籍,大大減少了讀者的負(fù)擔(dān),只需要下載一本txt格式的電 子書,放在sd卡里邊,就是人們的生活百科。1.2設(shè)計(jì)思路及研究方法1.2.1設(shè)計(jì)思路閱讀器的設(shè)計(jì)流程主要是按照軟件設(shè)計(jì)的一般流程:需求分析、概要設(shè)計(jì)、 詳細(xì)設(shè)計(jì)、測試與維護(hù)的基本流程來設(shè)計(jì)開發(fā)的。首先,從整體分析軟件功能, 將功能模塊化;然后對每個(gè)模塊進(jìn)行調(diào)試。最后對各個(gè)模塊進(jìn)行系統(tǒng)集成。 1.2.2研究方法本系
5、統(tǒng)在整體框架研處方法采用的是問卷調(diào)查法和觀察研究法。而在總體 設(shè)計(jì)上釆用的是結(jié)構(gòu)化方法,在局部底層開發(fā)上為便于交流釆用快速原型法。結(jié)構(gòu)化系統(tǒng)的設(shè)計(jì)方法是在結(jié)構(gòu)化程序設(shè)計(jì)思想基礎(chǔ)上發(fā)展起來的,它的 基本涵義是一個(gè)系統(tǒng)由層次化的程序模塊構(gòu)成,每一個(gè)模塊只冇一個(gè)入口和一 個(gè)出口,每一個(gè)模塊只歸其上一級模塊調(diào)用,并有模塊連接的準(zhǔn)則和構(gòu)造模塊的標(biāo)準(zhǔn),而且用系統(tǒng)結(jié)構(gòu)圖來表達(dá)系統(tǒng)的結(jié)構(gòu),盡可能用最優(yōu)的方式將系統(tǒng)內(nèi) 各部分組織起來。2概要設(shè)計(jì)2.1軟件的基本功能要求在現(xiàn)行業(yè)務(wù)流程和數(shù)據(jù)分析的基礎(chǔ)上基本上確定了系統(tǒng)的功能,設(shè)計(jì)也基 木上達(dá)到了口標(biāo)。根據(jù)軟件設(shè)計(jì)的步驟,需求分析是軟件設(shè)計(jì)成功的基礎(chǔ),也 是必不可少
6、的步驟。同時(shí),也對軟件的設(shè)計(jì)提岀了具體的要求。在做足了充分 的調(diào)查研究z后,基本可以確定軟件的功能界而如下:(1)剛打開軟件時(shí)的歡迎動(dòng)畫界面。(2)在沒冇閱讀記錄情況下打開軟件吋進(jìn)入的軟件說明界面。(3)在主界面下單擊“菜單”按鈕后彈出的歡迎主菜單界面。(4)找書選擇界面,用來選擇找書的途徑。(5)網(wǎng)絡(luò)下載列表界而,用來列出服務(wù)器端可供下載的文檔。(6)卜載完成提示界面,用戶從服務(wù)器端完成指定文檔卜載任務(wù)時(shí)顯示的界 面。(7)已存在要下載文件提示界面,當(dāng)用戶指定要下載的文檔在sd卡中已存 在時(shí)顯示的界面。(8)sd卡文件列表界而,列出sd卡屮存在的所冇資料。(9)閱讀界面,用來閱讀文檔的主界面
7、,是整個(gè)閱讀器設(shè)計(jì)核心部分。(10)書簽功能界面,用來選擇與書簽相關(guān)的具體操作。(11)添加書簽功能界面,將當(dāng)前閱讀到的位置以書簽名和書頁號的形式存至?xí)灡?,方便下次閱讀。(12)選擇書簽功能界而,通過選擇書簽記錄跳轉(zhuǎn)至想要閱讀的位置。(13)刪除書簽功能界面,再不想耍該條書簽記錄的情況卜實(shí)現(xiàn)刪除操作。(14)自動(dòng)翻頁功能界面,實(shí)現(xiàn)不同時(shí)間間隔自動(dòng)翻頁的效果。(15)設(shè)置界面,用來選擇對閱讀界面不同的設(shè)置。(16)背景音怎界面,可在閱讀的同時(shí)欣賞音怎,更大限度的提升。(17)背景圖片界而,用來設(shè)置不同的閱讀界而風(fēng)格,使閱讀更為個(gè)性化。(18)字體顏色界面,用來設(shè)置不同的閱讀字體顏色,提升用戶的
8、視覺體驗(yàn)。基木說明如h*:本系統(tǒng)是一個(gè)電子書閱讀器,主要包含一個(gè)主界面,用來實(shí)現(xiàn)閱讀的功能。 在閱讀界面時(shí),點(diǎn)擊menu,手機(jī)底部會(huì)出現(xiàn)四個(gè)選項(xiàng):找書、書簽、自動(dòng)翻頁、 設(shè)置。點(diǎn)擊找書選項(xiàng)會(huì)有兩種操作可供選擇,分別是在sd卡中找書和通過網(wǎng) 絡(luò)下載;點(diǎn)擊書簽選項(xiàng)會(huì)冇三種操作可供選擇,分別為添加書簽、選擇書簽和 清空書簽,其中長按選擇書簽列表中的某條書簽記錄也可達(dá)到刪除該條記錄的 目的;點(diǎn)擊自動(dòng)翻頁選項(xiàng)會(huì)有四種操作可供選擇,分別為每隔30秒、40秒、 50秒自動(dòng)翻頁和停止自動(dòng)翻頁;點(diǎn)擊設(shè)置選項(xiàng)會(huì)有四種操作可供選擇,分別為 設(shè)置背景音樂、設(shè)置背景圖片、設(shè)置字體顏色和設(shè)置字體大小,為此用戶可通 過自己
9、的喜好來設(shè)置不同閱讀界而的風(fēng)格,并冃可以選擇自己喜愛的音樂作為 背景咅樂,在閱讀的同時(shí)欣賞。2.2系統(tǒng)架構(gòu)木設(shè)計(jì)總體邏輯結(jié)構(gòu)層次劃分如圖1所示。電子書閱讀器找書書簽menupinrarnfr景a:片字體大小自動(dòng)釀貞圖1功能結(jié)構(gòu)圖2.3開發(fā)環(huán)境數(shù)據(jù)庫由于木設(shè)計(jì)和數(shù)據(jù)庫密切相關(guān),但是對數(shù)據(jù)庫的要求不高,因此可用 android系統(tǒng)本身自帶的sqlite數(shù)據(jù)庫。android sdk 與 eclipse 開發(fā)的插件 adt由于本設(shè)計(jì)是基于android系統(tǒng)的,而android開發(fā)環(huán)境的搭建是基于 eclipse的,因此需要下載android sdk與eclipse開發(fā)的插件adt。服務(wù)器由于木設(shè)計(jì)需
10、要用服務(wù)器來為其提供卜載服務(wù),而且對服務(wù)器的要求不高, 因此在設(shè)計(jì)時(shí)用tomcat作服務(wù)器。3設(shè)計(jì)過程3.1總體軟件結(jié)構(gòu)設(shè)計(jì)打開電子書閱讀器之后,軟件會(huì)先查看上次閱讀的最后記錄,以此作為根 據(jù)來進(jìn)行判斷從而跳轉(zhuǎn)至相應(yīng)的閱讀界面。然后用戶就可在閱讀界面下通過選 擇menu來執(zhí)行想要的操作:找書、書簽、自動(dòng)翻頁、設(shè)置。點(diǎn)擊找書選項(xiàng)會(huì) 有兩種操作可供選擇,分別是在sd卡中找書和通過網(wǎng)絡(luò)下載;點(diǎn)擊書簽選項(xiàng) 會(huì)有三種操作可供選擇,分別為添加書簽、選擇書簽和清空書簽,其中長按選 擇書簽列表中的某條書簽記錄也可達(dá)到刪除該條記錄的目的;點(diǎn)擊自動(dòng)翻頁選 項(xiàng)會(huì)有四種操作可供選擇,分別為每隔30秒、40秒、50秒自
11、動(dòng)翻頁和停止自 動(dòng)翻頁;點(diǎn)擊設(shè)置選項(xiàng)會(huì)有四種操作可供選擇,分別為設(shè)置育景音樂、設(shè)置背 景圖片、設(shè)置字體顏色和設(shè)置字體大小,為此用戶可通過自己的喜好來設(shè)置不 同閱讀界面的風(fēng)格,并且可以選擇己喜愛的咅樂作為背景咅樂,在閱讀的同 時(shí)欣賞。與 test:src44 comt>>>>t>>t>>根據(jù)各個(gè)模塊的不同功能,對木設(shè)計(jì)進(jìn)行了層次結(jié)構(gòu)的劃分。在eclipse下 創(chuàng)建了一個(gè)名為test的工程,工程的結(jié)構(gòu)圖如圖2:.loriup adthroeid jdvei boorivlark.java ud i uti i .j eivesdownload jei
12、veifillj-tils.jiavali stvi e?wuti 11 sj eiveiivlydiolog.javoivlydialog back.g roundpic.javivlydiolog fontcolor.javo picloi3clutil.ji3varcra ui o ractivity.j ei v 曰 readera/jewrun d record .j ovot>r>>>>sqldbljtil.javat osaotivity.jovat extlu>nulljatiljbv3tlj rn pei 9 dthi reel ci j&
13、lt;3 ve>a/e11 uo rri es ui rf 3 ue/i ewj 3gen cgonoratoci java filosandroid 2.3.1assetsbioruw4 r-» t! i p</1 a圖2軟件工程結(jié)構(gòu)圖該功能包是通過android sdk門動(dòng)生成的,主要包括以下內(nèi)容:(1)src源代碼目錄:該目錄存放android應(yīng)用程序所有的源代碼。該目 錄項(xiàng)有不同的包,包中對應(yīng)開發(fā)的源代碼,開發(fā)過程中的主要精力都集中在開 發(fā)src 口錄下內(nèi)容。(2)gen文件夾目錄:該目錄存放了 eclipse的adt插件自動(dòng)生成的r.java 文件。實(shí)際上r.j
14、ava定義了一個(gè)r類,它包含了應(yīng)用中用戶界而、圖像、字符 串等各種資源與z相對應(yīng)的資源編號(id)。這些資源編號都是系統(tǒng)口動(dòng)生成 的,即冇一資源對象,系統(tǒng)就為此在r類中生成相應(yīng)資源編號,好比一本字典。(3)res 資源 口錄:該口錄定義了 drawablex layout 及 values 3 個(gè)口錄。a. drawable 目錄:該目錄下有 drawable-hdpi, drawable-ldpi, drawable-mdpi3 個(gè)文件夾,分別用來存放不同分辨率的圖片資源,用于不同分辨率 的手機(jī)的 開發(fā),口j以通過resource.getdrawable(id)獲得該資源。b. layout
15、目錄:該目錄下包含了所有使用xml格式的界面描述文件。主要 用于表述應(yīng)用程序的用戶界面布局,也用于描述用戶界面和接口組件。c. values目錄:該目錄包含了使用xml格式的參數(shù)描述文件,也可以在此 添加一些額外的資源,如字符串、顏色、樣式和數(shù)組等。主耍用于在代碼中通 過r類來調(diào)用它們,而不直接使用,這樣可將代碼和資源分開管理,便于維護(hù)。除了以上文件夾外,還用一個(gè)androidmanifest.xml文件,該文件是系統(tǒng)的 控制文件,告訴系統(tǒng)如何處理創(chuàng)建的所有頂層項(xiàng)口,尤其是activity,凡是需要 用到的組件都要在此注冊。同時(shí)該文件也是所有android應(yīng)用程序都需要的文 件,英描述了程序包
16、的全局變量,包括公開的應(yīng)用程序組件和每個(gè)組件的實(shí)現(xiàn) 類,什么樣的數(shù)據(jù)可以操作,在什么地方可以運(yùn)行等。在這個(gè)文件中最重要的一個(gè)內(nèi)容就是intent過濾器,這些過濾器描述了何 吋、何種情況下讓activity 動(dòng)。當(dāng)一個(gè)activity (或操作系統(tǒng))想要執(zhí)行一個(gè) 動(dòng)作,它將創(chuàng)建一個(gè)intent對象。該對象包含了很多描述符,描述了想做的操 作,像處理數(shù)據(jù),數(shù)據(jù)的類型,以及一些英他的信息。android將intent對彖屮 的所有公開的intent過濾器比較,找到一個(gè)最能恰當(dāng)處理請求的數(shù)據(jù)和動(dòng)作的 activity o3.2接口設(shè)計(jì)3.2.1外部接口在用戶界面部分,根據(jù)需求分析結(jié)果,用戶需耍一個(gè)友善
17、界面。在界面設(shè) 讓上,應(yīng)做到簡單明了,易于操作,并且要注意到界面的布局,應(yīng)突出的顯示 重要以及出錯(cuò)信息。在界面設(shè)計(jì)部分,木系統(tǒng)按照microsoft公司的用戶界面設(shè) 計(jì)標(biāo)準(zhǔn),為用戶提供友好、方便、直觀、簡潔的操作環(huán)境。本系統(tǒng)采用了窗口繼承的方式,使窗口冇統(tǒng)一的界而風(fēng)格。同時(shí),對錯(cuò)誤 信息、提示信息進(jìn)行標(biāo)準(zhǔn)化,盡量做到清晰明了。3.2.2內(nèi)部接口系統(tǒng)在功能模塊的設(shè)計(jì)上,以“高內(nèi)聚、低耦合”為設(shè)計(jì)口標(biāo)。內(nèi)部接口 方面,各模塊之間采用函數(shù)調(diào)用、參數(shù)傳遞、返冋值的方式進(jìn)行信息傳遞。具 體參數(shù)的結(jié)構(gòu)將在下而數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的內(nèi)容中說明。接口傳遞的信息將是以數(shù) 據(jù)結(jié)構(gòu)封裝的數(shù)據(jù)、參數(shù)傳遞或返回值的形式在各模塊
18、間傳遞。3.3數(shù)據(jù)庫設(shè)計(jì)3.3.1數(shù)據(jù)模式設(shè)計(jì)一共設(shè)計(jì)了 3張表,是:(1) 閱讀記錄表(閱讀記錄的id,書的路徑,閱讀記錄數(shù)據(jù))(2) 書簽表(書簽的id,書簽對應(yīng)的閱讀記錄的id,書簽名,書頁)(3) 上次閱讀記錄表(上次閱讀記錄的id,書的路徑,上次閱讀到的書 頁,上次閱讀時(shí)的字體)數(shù)據(jù)庫表的設(shè)計(jì)如下:圖3數(shù)據(jù)庫結(jié)構(gòu)圖3.3.2數(shù)據(jù)表格設(shè)計(jì)本數(shù)據(jù)庫用的是一個(gè)小型數(shù)據(jù)庫sqlite3,在數(shù)據(jù)庫中創(chuàng)建了三個(gè)表格。即 bookrecord> bookmark和lasttimepage,分別用來存放閱讀記錄的數(shù)據(jù)、書簽 的數(shù)據(jù)和上次的閱讀記錄數(shù)據(jù)。具體內(nèi)容如表31、表32和表33所示:表1
19、閱讀記錄表字段名稱數(shù)據(jù)類型字段大小是否上鍵說明ridinteger8是閱讀記錄的idpath文本50否書的路徑data字節(jié)數(shù)組不定否預(yù)讀記錄數(shù)據(jù)表2書簽表字段名稱數(shù)據(jù)類型字段大小是否主鍵說明midinteger8是書簽的idridfkinteger8否書簽對應(yīng)的閱讀記錄的idbmname文本50否書簽名pageinteger8否書頁表3上次閱讀記錄表字段名稱數(shù)據(jù)類型字段大小是否主鍵說明lidinteger8是上次閱讀的記錄idpath文本50否書的路徑pageinteger8否上次閱讀到的頁數(shù)fontsizeinteger8否上次閱讀的字體大小3.3.3表的具體設(shè)計(jì)表名:bookrecord表
20、中字段名稱:rid, path, data.說明:用varchar類型存儲path, blob類型存儲相應(yīng)的路徑下的閱讀過程, 并規(guī)定rid為閱讀記錄表的主鍵。表名:bookmark表屮字段名稱:mid, ridfk, binname, page.說明:創(chuàng)建書簽mid為integer類型主鍵,定義書簽名字bmname為varchar 類型,書頁號page為integer類型的書簽表。表名:lasttimepage表中字段名稱:lid, path, page, fontsize.說明:創(chuàng)建書簽lid為integer型主鍵,定義路徑path為varchar類型,書頁號page為integer類型,
21、字體大小為integer類型的上次閱讀記錄表。3.3.4數(shù)據(jù)字典數(shù)據(jù)字典是物理數(shù)據(jù)庫的具體體現(xiàn)。表4 bookrecord數(shù)據(jù)字典字段名類型閱讀記錄的id整型書的路徑文本閱讀記錄數(shù)據(jù)字節(jié)數(shù)組表5 bookmark數(shù)據(jù)字典字段名類型書簽的id幕型書簽對應(yīng)的閱讀記錄的1d整型書簽名文本書頁幕型表6 lasttimepage數(shù)據(jù)字典字段名類型上次閱讀記錄的id整型書的路徑文木上次閱讀到的頁數(shù)整型上次閱讀時(shí)字體大小整型3.4軟件設(shè)計(jì)模型建立系統(tǒng)數(shù)據(jù)模型的主要工具是實(shí)體關(guān)聯(lián)圖,即e-r圖。er圖的圖形符號約定如下表:卩的路徑閱讀記錄數(shù)據(jù)閱讀記錄圖4存儲閱讀記錄的e-r圖3.5軟件維護(hù)設(shè)計(jì)采川mvc設(shè)計(jì)模
22、式,將ui層和業(yè)務(wù)邏輯層分離開來,采用針對接口編程的方式,降低了 代碼z間的耦合度,便于軟件的升級和程序性能的優(yōu)化。4系統(tǒng)功能模塊的設(shè)計(jì)與實(shí)現(xiàn)4.1關(guān)鍵技術(shù) 4.1.1 android 平臺及 java 語言以下圖表展示了 android操作系統(tǒng)的主要組成部分:aprli cationshomeconticupbonebrowserapplication frameworkactivity manaferwrulow managercontent prowlerspidote minivertelephony mmagerresource managerlibrariessurfice man
23、agermediafrxmeworlcsqlkeopengl|esfreelypewbkk sgi sslibcviewsystemlocationmmajernotifkitionmanagerxmpp serviceandroid runtimecore ubrarieslinux kerneldtsplay drivercamera driverbluetooth dnverflash memory driverbinder 0pc)drtverusb driverkeypad drhrerwir driveraudio driverspower manage menc圖7 andro
24、i d系統(tǒng)架構(gòu)圖本系統(tǒng)是以java為編程語言,從接口到功能,靈活多變。主要運(yùn)用的是 activity之間的相互跳轉(zhuǎn),然后利用intent實(shí)現(xiàn)多個(gè)程序同吋運(yùn)行的效果。運(yùn)行 中如果某個(gè)activity的畫面被另一個(gè)activity所取代,則這個(gè)activity停止。本 系統(tǒng)通過把view類與xml (可擴(kuò)展標(biāo)記語言)將用戶界而放置在視圖窗口, 然后注冊事件來完成相應(yīng)的功能。例如,當(dāng)視圖耍處理用戶的點(diǎn)擊事件的時(shí)候, android就要向框架注冊一個(gè)onclicklistener等。本系統(tǒng)中觸發(fā)事件都是通過這 種來實(shí)現(xiàn)的。java語言是一種簡單易用,面向?qū)ο蟮?,可移植的語言。它具有 很多的優(yōu)越性和特點(diǎn)
25、,比如:平臺無關(guān)性,安全性,面向?qū)ο螅研缘鹊取?本系統(tǒng)就是在android平臺上使用java語言完成的系統(tǒng)。4.1.2中介軟件中介軟件是android操作系統(tǒng)應(yīng)用程序的橋梁,主要分為函數(shù)和虛擬機(jī)。 android的數(shù)據(jù)存儲采用sqlite3數(shù)據(jù)庫系統(tǒng),用戶可以用contentprovider類獲 取數(shù)據(jù)。android中數(shù)據(jù)存儲技術(shù)主要有:文件存儲、preferencesqlite contentprovider和網(wǎng)絡(luò)存儲,在本軟件屮主要使用到了文件存儲、sqlite和 contentprovider,文件存儲是以流的形式讀寫文件,可以以文格的格式,也可以 以二進(jìn)制的形式,在java語言中
26、要使用流,則寫入文件的對象必須進(jìn)行序列化, sqlite是嵌入式移動(dòng)設(shè)備屮常用的輕量級數(shù)據(jù)庫,可看作計(jì)算機(jī)上使用的sql server> oracle數(shù)據(jù)庫。本軟件中,用戶生詞本中的數(shù)據(jù)都存在sqlite數(shù)據(jù)庫中, 而進(jìn)行數(shù)據(jù)備份和恢復(fù)時(shí)則是用文件作為介質(zhì)保存數(shù)據(jù)。4.1.3四大組件android的四人組件是支持android應(yīng)用程序顯示,跳轉(zhuǎn),服務(wù)和事件的重 要工具,它們主要是:activity (活動(dòng)),intent (意圖),service (服務(wù)), contentprovider (內(nèi)容提供器)。activity是一個(gè)用戶的界面基類,屬于ui。一 個(gè)activity就是一個(gè)類,
27、每個(gè)activity類都需要繼承activity基類,并與其他控 件結(jié)合使用。intent實(shí)現(xiàn)activity、service等z間的跳轉(zhuǎn)和數(shù)據(jù)傳輸。sendee是 后臺服務(wù),為用戶提供數(shù)據(jù)支持。contentprovider負(fù)責(zé)數(shù)據(jù)的存儲和讀取。在 android屮,軟件ui通常使用xml技術(shù)設(shè)計(jì),而xml屮控年的位置和狀態(tài)則離 不開布局的使用,android中常用的布局有5種,分別是:absolutelayout>linearlayout> relativelayout> framelayout tablelayout, db 丁呀|j局的使用, 并11布局之間可以互相嵌
28、套,使得android軟件ui的設(shè)計(jì)變得非常靈活,即使 是一些非常復(fù)雜的界面設(shè)計(jì),只要合理的使用布局,也會(huì)使開發(fā)變得很容易。4.1.4 sqlite3 數(shù)據(jù)庫sqlite3是建立在android平臺上的一個(gè)數(shù)據(jù)庫,除了支持varchar (n)(可 變字符),char(n)(定長字符)等數(shù)據(jù)特性外,還支持空(null),整型(integer), 文木類型(text)等數(shù)據(jù)類型。它的特點(diǎn)入下:輕量級(只需帶上很小的動(dòng)態(tài) 庫,就能享受它的全部功能)、獨(dú)立性(使用不需要安裝,在部署的時(shí)候能省 去很多麻煩)、隔離性(數(shù)據(jù)庫屮所有的信息都包含在一個(gè)文件內(nèi),方便管理 和維護(hù))和安全性(可以同時(shí)讀取數(shù)據(jù),但
29、同時(shí)只有一個(gè)能夠?qū)懭霐?shù)據(jù))等特 性。4.1.5 tomcat 服務(wù)器服務(wù)器的架設(shè):(1)在 / 卜載合適版本的 tomcat o(2)在/apache-tomcat-5.0.28/webapps 目錄卜新建文件夾 txt。(3)在txt文件夾下創(chuàng)建文本文件txt_list.txto(4)在txt_list.txt下寫入內(nèi)容。(5)根據(jù)txt_list.txt的內(nèi)容,創(chuàng)建文本。(6)打開/pache-tomcat-5.0.8/bin 目錄。(7)打開/pache-tomcat-5.0.8/bin 目錄下的 startup.bato4.2歡迎界面的實(shí)現(xiàn)
30、木模塊主要完成閱讀器歡迎界面的漸變效果顯示,在進(jìn)入程序界面吋首先 調(diào)用。該功能的實(shí)現(xiàn)主要是通過繪制黑色矩形,然后對其進(jìn)行平面貼圖,并通 過不斷的更改圖片的透明值來實(shí)現(xiàn)的。4.3主控制類的實(shí)現(xiàn)readeractivity類是主要控制程序運(yùn)行的類,實(shí)現(xiàn)了各個(gè)界面的有序切換, 各個(gè)按鈕和對話框的監(jiān)聽事件,加載了程序屮用到的相關(guān)資源,有效地控制了 程序的運(yùn)行。(1) oncreate方法是程序運(yùn)行時(shí),進(jìn)入主界面而調(diào)用的方法,在此方法中 對程序中用到的相關(guān)變量進(jìn)行賦值,并為相關(guān)類創(chuàng)建對象,以方便調(diào)用。(2) onkeydownf方法是重寫父類的onkeydown方法,當(dāng)按下不同的鍵 時(shí),此方法設(shè)計(jì)返冋鍵
31、(4號鍵)和menu鍵(82號鍵),并且本設(shè)計(jì)中支持 屏幕觸控事件和鍵盤監(jiān)聽事件。(3) oncreateoptionsmenu方法表示的是程序運(yùn)行時(shí),用戶按下鍵盤上的 menu鍵后,顯示的找書、書簽、自動(dòng)翻頁和設(shè)置的按鈕選項(xiàng),當(dāng)用戶按下不同 的鍵后,彈出相應(yīng)的對話框。(4) sendmessage方法表示各個(gè)界面相互跳轉(zhuǎn)時(shí)調(diào)用的方法和不同線程之 間傳遞消息的方法。(5) iswhichtime方法用以判斷是否為第一次打開程序,如果是,則程序 中的變量值為默認(rèn)值;若不是第一次打開,則獲取上一次打開時(shí)設(shè)置的值。(6) savecurrentdata和savepreference方法表示當(dāng)程序退出
32、、換書和第一 次打開一本書時(shí)都要想數(shù)據(jù)庫中bookrecord表中插入數(shù)據(jù),第一次打開一本書 時(shí),向數(shù)據(jù)庫中插入數(shù)據(jù)是因?yàn)?,如果表屮不存在?dāng)前書的信息,則無法存書 簽。4.4工具類的設(shè)計(jì)(1) constant類存放了整個(gè)設(shè)計(jì)過程屮,大部分類經(jīng)常用到的常量值,如字 體大小、字休顏色、屏幕的寬和高等。將這些常量值放在一起,不但方便了設(shè) 計(jì),而且方便管理。(2) 加載文本的工貝類textloadutil的設(shè)計(jì)主要是為文木的讀入提供方法。 4.5閱讀界面的實(shí)現(xiàn)readerview類主要負(fù)責(zé)自適應(yīng)屏、繪制閱讀器的主界面、實(shí)現(xiàn)鍵盤和屏幕的 觸控事件以及實(shí)現(xiàn)翻頁功能。(1) surfacecreated方
33、法主要負(fù)責(zé)成員變量的初始化工作。(2) ondraw方法負(fù)責(zé)標(biāo)題、廣告條、左右頁面等圖片的繪制。其中廣告條 的繪制是動(dòng)態(tài)的,在廣告條線程中值需要更改圖片數(shù)據(jù)下標(biāo)志值num。(3) ontouchevent方法負(fù)責(zé)處理屏幕觸控事件,屏幕觸控事件為移動(dòng)是翻頁特效的實(shí)現(xiàn)。(4) drawpage方法負(fù)責(zé)根據(jù)閱讀記錄對象readrecord繪制左右兩頁面。歡迎界面足-次打開該軟件匚否是 i “|v在說明界面退山了軟件?軟件說明界面進(jìn)入上次閱讀到的閱讀界面圖8從用戶進(jìn)入軟件到閱讀界面時(shí)的流程圖圖9用戶在閱讀界面時(shí)的操作流程圖當(dāng)用戶進(jìn)行閱讀界面的時(shí)候,首先閱讀控制模塊會(huì)根據(jù)用戶之前閱讀到的位 置來確定載入
34、電子書文木的起始位置,然后會(huì)根據(jù)手機(jī)終端屏幕大小和字體大 小來確定該頁應(yīng)該顯示多少文字。在獲取文字長度之后,會(huì)讀取相應(yīng)長度的字 符并以此為基礎(chǔ)生成左右相鄰兩頁內(nèi)容的bitmap圖片。用戶在閱讀的時(shí)候可以 觸摸屏幕的不同位置進(jìn)行不同操作,左下角是往而翻頁,右卜角是往后翻頁。 4.6找書功能的實(shí)現(xiàn)找書功能分為在sdcard屮和在網(wǎng)絡(luò)屮找書。(i)在sdcard中找書用戶可以將已有的txt格式的書放在sdcard中,通過木閱讀器的在sdcard 中找書的功能將書加載進(jìn)閱讀器進(jìn)行閱讀,具體步驟如下:按下menu鍵,在 主界面屮彈出的選項(xiàng)屮選擇找書,彈出找書對話框,選屮sdcard,即可根據(jù) 當(dāng)前路徑獲
35、得對應(yīng)文件數(shù)組,并將數(shù)組中的所有文件加入到文件列表中,然后 再為文件列表添加監(jiān)聽,從而實(shí)現(xiàn)在點(diǎn)擊某一文件時(shí)跳轉(zhuǎn)至對應(yīng)頁而的功能。(2)在網(wǎng)絡(luò)中找書本閱讀器不僅提供了在本地找書的功能,而且也支持在網(wǎng)絡(luò)中找書。具體步 驟如下:當(dāng)單擊在網(wǎng)絡(luò)中找書的按鈕時(shí),調(diào)用downtxt方法下載txt文檔。閱讀界面用戶點(diǎn)擊找書網(wǎng)絡(luò)列出可下載目錄選擇耍下載的書sdcard列出sdcard屮書的忖錄選擇耍閱讀的書<1e在閱瀆的書?:>伺讀典的界而足5dtard申己存曲sdcarti圖10用戶找書時(shí)的操作流程圖4.7書簽功能的實(shí)現(xiàn)添加書簽功能的實(shí)現(xiàn)在木設(shè)計(jì)的書簽功能屮有很多漂亮的dialog,這些dialo
36、g是通過xml文件 口己布局的或者是通過java代碼自定義實(shí)現(xiàn)的。其中styles.xml文件設(shè)置了 dialog的背景圖片和標(biāo)題格式,是設(shè)置對話框屈性的文件。在完成了輸入書簽 對話框所需要繼承的類、布局文件和對話框?qū)傩缘奈募后,創(chuàng)建了書簽輸入 對話框,并通過onprcparedialog方法為口定義的輸入書簽對話框中的按鈕添加 了監(jiān)聽。選擇書簽功能的實(shí)現(xiàn)選擇書簽對話框不同于添加書簽對話框,是用bva代碼實(shí)現(xiàn)的。具體的實(shí) 現(xiàn)步驟如2a. 在數(shù)據(jù)庫中取出所有書簽的名字和頁數(shù)的索引值,并分別放入兩個(gè)數(shù)組 tempname和temppage中,用來放入書簽列表中顯示。b. java代碼編寫列表對話
37、框,并且為listview添加內(nèi)容適配器,將在數(shù) 據(jù)庫中取出的書簽名稱和其對應(yīng)的頁數(shù)的索引加入到listview中。c. 當(dāng)單擊選擇書簽對話框中的某一項(xiàng)時(shí),得到當(dāng)前的頁數(shù),根據(jù)頁數(shù)查找 hashmap,找到相應(yīng)的bookmark類的對象,從而知道耍跳轉(zhuǎn)到的頁的索引值。d. 當(dāng)長時(shí)間按住選擇書簽對話框中的某一項(xiàng)時(shí),彈出“是否刪除這條記錄” 的對話框,如果單擊“確定”按鈕,則會(huì)刪除這條記錄,單擊“取消”按鈕則 不會(huì)刪除記錄。閱讀界面川戶點(diǎn)擊| id的仙過界曲審毎£翳除讀* id求】|圖11書簽功能操作流程圖4.8設(shè)置字體大小功能的實(shí)現(xiàn)字體人小對話框與選擇書簽對話框的設(shè)計(jì)基本相同,也是通過
38、java代碼為 對話框屮控件的擺放形式設(shè)置布局。當(dāng)單擊小號、屮號、大號字體后,如果當(dāng) 前字體與要變換的字體相同,則不發(fā)生變化,否則將字體的大小和中英文間距 重新賦值,然后重新繪制當(dāng)前界而。字體大小變化后書簽和hashmap的更新:(1) updatabookmarkandhashmap方法負(fù)責(zé)字體人小變化后,更新書簽和 hashmap o(2) drawvirtualpage方法是字體大小變化后,書簽和hashmap更新過程 中,虛擬繪制主界而屮每一頁信息,并且為下一頁的left_start的值賦值的方法。 4.9更換背景圖片以及設(shè)置字體顏色功能的實(shí)現(xiàn)(1) 更換背景圖片功能的實(shí)現(xiàn)a. 為了使
39、對話框看起來更美觀,為對話框屮的按鈕設(shè)置背景圖,同吋 背景圖與要設(shè)置背景一致,為用戶提供參考。b. 為按鈕添加監(jiān)聽,使單擊按鈕后,可以實(shí)現(xiàn)更換閱讀內(nèi)容背景的圖 片。c. 設(shè)置要更換的圖片,并規(guī)定圖片加載的屬性,用到了 picloadutil這 個(gè)工具類的方法來實(shí)現(xiàn)圖片自適應(yīng)。d. 重新繪制左右兩側(cè)背景圖片上的文字。(2) 設(shè)置字體顏色功能的實(shí)現(xiàn)a. 為了使對話框看起來更美觀,為對話框中的按鈕設(shè)置背景圖,同時(shí) 背景圖與要設(shè)置字體顏色一致,為用戶提供參考。b. 為按鈕添加監(jiān)聽,使單擊按鈕后,可以實(shí)現(xiàn)重新設(shè)置閱讀界面字體 顏色。c. 完成字體顏色設(shè)置,返回到當(dāng)前閱讀界而繼續(xù)閱讀。5設(shè)計(jì)結(jié)果打開本系統(tǒng),首先進(jìn)入的是歡迎界面,效果如圖12圖12歡迎界面圖在主菜單屮單擊“找書”按鈕進(jìn)入找書選擇界
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 采購材質(zhì)合同范本
- 蘇科版數(shù)學(xué)七年級上冊2.4《絕對值與相反數(shù)》聽評課記錄2
- 蘇科版數(shù)學(xué)八年級下冊10.4《分式的乘除》聽評課記錄1
- 酒泉強(qiáng)夯地基處理施工方案
- 基坑拉槽基開挖施工方案
- 蘇科版數(shù)學(xué)七年級下冊12.2.1《證明》聽評課記錄
- 蘇科版數(shù)學(xué)七年級上冊6.3.1《余角 補(bǔ)角 對頂角》聽評課記錄
- 蘇科版數(shù)學(xué)七年級上冊4.3《用一元二次方程解決問題》聽評課記錄3
- 湘教版地理七年級下冊7.5《北極地區(qū)和南極地區(qū)》(第1課時(shí))聽課評課記錄
- 2025年度物流貨物保險(xiǎn)增值服務(wù)合同
- 2023年陜西西安亮麗電力集團(tuán)有限責(zé)任公司招聘考試真題
- 不需公證的遺囑范文
- 實(shí)驗(yàn)動(dòng)物與動(dòng)物福利
- 南京地區(qū)幼兒園室內(nèi)空氣污染物與兒童健康的相關(guān)性研究
- 2024年湖南鐵路科技職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及答案解析
- (正式版)SHT 3115-2024 石油化工管式爐輕質(zhì)澆注料襯里工程技術(shù)規(guī)范
- (正式版)JBT 9630.1-2024 汽輪機(jī)鑄鋼件無損檢測 第1部分:磁粉檢測
- 平安產(chǎn)險(xiǎn)陜西省地方財(cái)政生豬價(jià)格保險(xiǎn)條款
- 地震應(yīng)急救援培訓(xùn)課件
- 《南京瞻園賞析》課件2
- 《有責(zé)任有擔(dān)當(dāng)青春才會(huì)閃光》教學(xué)課件-2023-2024學(xué)年高一下學(xué)期愛國主義教育主題班會(huì)
評論
0/150
提交評論