基于Android系統(tǒng)的電子書閱讀器的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
基于Android系統(tǒng)的電子書閱讀器的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
基于Android系統(tǒng)的電子書閱讀器的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
基于Android系統(tǒng)的電子書閱讀器的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
基于Android系統(tǒng)的電子書閱讀器的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

太原工業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)4.3.2建表語句1)創(chuàng)建:1、創(chuàng)建書表:IFNOTbook(bidprimaryvarchar(255notnull2、創(chuàng)建書的表:IFNOTbookmark(bmidprimaryautoincrement,null,varchar(50)notnull,bmoffsetintegernull,bmsavetimevarchar(20)notnull);3、創(chuàng)建用管理的表:tableIFNOTuser(useridintegerprimarykeyautoincrement,varchar(20)null,null,varchar(20notnull;4、創(chuàng)建最閱讀的表IFNOTnearlyread(bookidprimarykeyautoincrement,bookname(50)null,bookreadtimevarchar()notnull;5、創(chuàng)建下管理的表IFNOTdown(downidprimaryautoincrement,downuservarchar(20)notnullvarchar20)notnull);2)據(jù)庫(kù)使用方法:選擇:fromwherebmid=1;插入:insert(bookmarknull刪除:fromwherebmid=3查找,columns,selection,groupBy,,orderBy)4.3.3數(shù)據(jù)表分本數(shù)據(jù)庫(kù)用的是一個(gè)輕量級(jí)嵌入型數(shù)據(jù)庫(kù)sqlite3,創(chuàng)建了一個(gè)數(shù)據(jù)庫(kù)reader。db,數(shù)據(jù)庫(kù)中創(chuàng)建了幾張數(shù)據(jù)表。在建設(shè)網(wǎng)站系統(tǒng)或者軟件之前們必須對(duì)系統(tǒng)所用到的數(shù)據(jù)進(jìn)行大致的分1

太原工業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)類和具體的結(jié)構(gòu)設(shè)計(jì),既要做到清晰明了又要能適應(yīng)系統(tǒng)各項(xiàng)功能的調(diào)用,而不至于產(chǎn)生結(jié)構(gòu)上的邏輯混亂保證關(guān)鍵數(shù)據(jù)在意外情況下不會(huì)被破壞可以說數(shù)表(用來存放書籍,如表字段名稱bid

數(shù)據(jù)類型(表4書籍?dāng)?shù)據(jù)表

條件約束primarynotnullBookmark表(管理書簽,如表4-2字段名稱Bpathbmoffsetmsavetime

數(shù)據(jù)類型Integer()(Integer(表書簽數(shù)據(jù)表

條件約束primarynotnullnotnullnotnullnotnullUser表(用戶數(shù)據(jù),表—字段名稱passwordtelephone

數(shù)據(jù)類型Integer(()(

條件約束primarynotnullnotnullnotnull表用戶數(shù)據(jù)表Nearlyread表(最近閱讀,如表字段名稱Bookidbooknamebookreadtime

數(shù)據(jù)類型Integer(()表最近閱讀數(shù)據(jù)表

條件約束primarynotnullnotnullDown下載,如表4::字段名稱

數(shù)據(jù)類型2

條件約束

Downuser

太原工業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)Integer((表下載數(shù)據(jù)表

primarynotnullnotnull3

太原工業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)5.41獲sd卡上的txt文本由于一個(gè)Android模擬器或者是一個(gè)手機(jī)客戶終端上只會(huì)配置一個(gè),所以一步移動(dòng)設(shè)備上有各種各樣的應(yīng)用App,而且各種App都可能會(huì)由數(shù)據(jù)或者文件存儲(chǔ)到移動(dòng)設(shè)備的sdcard上故而有各式各樣的文件類型是該款軟件不需要的也是用戶選擇本款軟件時(shí)所不需要的信息文件,于是通過構(gòu)造一個(gè)過濾式的方法讓軟件只接受來自上的TXT格式的文本文件。該方法是先通過判斷是否存儲(chǔ)路徑是通過getRecordFiles)方法過濾掉其他無用文件,將剩余的TXT件放置集合AirrayList中后通過Android空間將其目錄結(jié)構(gòu)文件給顯示出來.代碼如下privategetRecordFiles(){recordFiles=ArrayList〈String>();if(isSdcard){Filefiles[]=。();if(files){for(inti;i〈;){if(files[i]getName().indexOf("。)0){/*只取txt件*/file=]。(([i]。getName().indexOf(”"));if(file.toLowerCase)。equals(。txt”))recordFiles.add());}}}}}4

太原工業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)開始獲取文件TXT文件?是

否獲取文件名

過濾存放至集合結(jié)束圖文件過濾流程圖5.4.2長(zhǎng)選項(xiàng)刪除可能在漫長(zhǎng)的使用軟件生活中,用戶會(huì)在sdcard里面積累十分多的文件數(shù)量所以這里提供一個(gè)刪除功能供用戶刪除一些很久不用的文件該功能通過獲取到Android件ListView上每一條Item的長(zhǎng)按事件進(jìn)行綁定事件監(jiān)聽通過該行為進(jìn)行功能描述,通過獲取系統(tǒng)對(duì)于里面文件的操作權(quán)限來對(duì)于sdcard面的TXT文件進(jìn)行刪除面是刪除的方法delFile(部分代碼實(shí)現(xiàn):voidfilePathAndName){try{filePath=filePath=filePathjava.io。myDelFilejava.io.File(filePath);26

太原工業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文);}catch(Exceptione){Toast”刪除文操作出錯(cuò)",1000)。show(;。printStackTrace();}}5。閱讀文本界的實(shí)現(xiàn)這是該款軟件最基本也是最重要的功能—對(duì)于TXT文本文件的可視化讀取。由于軟件中對(duì)于sdcard里面的文件的讀取可以是從各種各樣的界面上獲取要讀取的TXT文件資源,比如可以從本地管理列表直接讀,也可以從最近閱讀列表讀取,者是從閱讀界面來讀取該文本的書簽從而讀取文本文件的某一段。所以,通過Android的Intent(意圖方式)傳遞數(shù)據(jù),數(shù)據(jù)包括了實(shí)現(xiàn)本界面的Activity類名也包括了要閱讀文本的書名,還有是要讀取文件的開始頁碼比例如果是非進(jìn)度跳轉(zhuǎn)功能或者是書簽的功能則默認(rèn)進(jìn)度讀取開始頁碼也第一頁而這些數(shù)據(jù)則通過封裝到某個(gè)對(duì)象中用傳遞給再通過Intent轉(zhuǎn)發(fā)數(shù)據(jù)。以下便是通過BitmapFactory工廠封裝了一些繪制閱讀背景的方法的部分代碼實(shí)現(xiàn):.setBitmaps(mCurPageBitmap,mNextPageBitmap;(){booleanonTouch(Viewv,MotionEvente){if(v=={if(e.getAction()==MotionEvent。ACTION_DOWN){abortAnimation();calcCornerXY(e。getX(),());。onDraw();if(mPageWidget{try{。);27

太原工業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)}catch(IOExceptione1){e1。printStackTrace();}ifpagefactory。())return;.onDraw();}{try{);}catch(IOException{e1。();}ifpagefactory())returnfalse;.onDraw();}setBitmaps(mCurPageBitmap,);}ret=mPageWidget.doTouchEvent(e);ret;}false;}};}28

太原工業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)開始獲取文件名初始頁面是否為1?是

否I/O流打開

隨機(jī)I/O流打開結(jié)束圖5

隨機(jī)流打開文件流程圖5menu按鈕功能的現(xiàn)添加書簽功能作為一款電子書閱讀器軟,這個(gè)功能是個(gè)輕松快捷而且不可避免的功能,它能夠?qū)㈤L(zhǎng)篇的文本文件斷點(diǎn)記錄如果用戶在長(zhǎng)時(shí)間的閱讀過程中感覺到疲,但是文件依然沒法短時(shí)間內(nèi)看完,為了方便下次閱讀則將當(dāng)前頁面記錄下次則可以直接點(diǎn)擊進(jìn)入需要的頁面閱讀該功能通過記錄了文件的總字節(jié)長(zhǎng)度及當(dāng)前的閱讀長(zhǎng)度進(jìn)行百分比計(jì)算前頁面的字節(jié)則是通過之前已經(jīng)計(jì)算好了的字體大小,每頁會(huì)大概的存放多少字節(jié)數(shù)privatevoidsaveBookMarkDialog(){Dialogd=newDialog(turntest.;d.setTitle("添加書簽");d。。layout。);EditText(EditText)d.findViewById(R.idbmet);Button=(Button)。findViewById(R。id。;Button=(Button)。findViewById(R.id.);//確定動(dòng)作。setOnClickListener(new(){29

太原工業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)Viewv){bmn=);if(bmn。<1){(d。show();}{if(bmn。length(〉10){bmn.substring(0,10);}BookMarknew();(txtname);bm.setMarkName(bmn);m_mbBufEnd);(new));mHelper=CRDBHelper(getApplicationContext();operateResultmHelper);;if(operateResult){makeText(。this,”添加成功",1000)。show();}{makeText(添加失敗"1000).show(});}}});以下是查找書簽及實(shí)現(xiàn)跳轉(zhuǎn)的部分代碼實(shí)現(xiàn):list=newArrayList〈(;for(inti0;i〈mBookMarkList。size();){30

太原工業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)mark=mBookMarkList。(i)。)+”mBookMarkList.get(i)。getSaveTime();list.add(}list_tag=(ListView)findViewById);=newArrayAdapter(ShowBookmark。list_tag.setAdapter(adapter)//

短按跳到書簽list_tag.setOnItemClickListener(){〈〉View,int,{//獲取到所點(diǎn)擊的書簽的定位intmBookMarkList。get(arg2).getCurrentOffset()IntentmIntent=newIntent(ShowBookmark.this,turntest.class);BundleBundle();mB.putString(”Activity"”ShowBookmarkActivity");mB。putInt("Offset",);(mB);;);}});刪除書簽:該功能就是簡(jiǎn)單的運(yùn)用對(duì)于書簽SQLite數(shù)據(jù)庫(kù)操作通過對(duì)于ListView組件的長(zhǎng)按事件添加監(jiān)聽程序自動(dòng)生成對(duì)話框.下是部分代碼實(shí)現(xiàn)list_tag(OnItemLongClickListener(){@Override31

太原工業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)booleanonItemLongClick(AdapterView?>arg0,Viewintlong{intnewthissetTitle("提示”)。setMessage(刪除該書簽")(確定",newOnClickListener(){onClick(DialogInterface,which){b=mHelper。mBookMarkListgetBookMarkId());if(b&&。)〉0){listpos);。notifyDataSetChanged();}}}”取消,newOnClickListener({@OverrideonClick(DialogInterfacedialog,int{dialog.dismiss(;}}).show();false;}});//出32

太原工業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)6.1能界面打開軟件,會(huì)從Logo面自動(dòng)跳轉(zhuǎn)到該功能界面,該功能的實(shí)現(xiàn)只是簡(jiǎn)單的通過Android系統(tǒng)的界面設(shè)計(jì),通過對(duì)其TabHost項(xiàng)卡組件的運(yùn)用將界面縱向平行的設(shè)計(jì)為三個(gè)覆蓋的界面,點(diǎn)擊則切換成指定的選項(xiàng)界面如圖—:圖51功能界面62書籍選擇主面打開軟件,軟件就自動(dòng)加載卡上的txt文檔,該列表通過獲取Android系統(tǒng)的的路徑然后獲取到里面的所有文件,后通過文件名后綴來判別是否為.結(jié)尾的文件將其添加進(jìn)入數(shù)據(jù)庫(kù),然后通過數(shù)據(jù)庫(kù)查詢列出所有該書籍表里面的集合從而列出要選擇的文檔,如圖5-233

太原工業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)圖5書籍選擇界面6.3戶閱讀界用戶左鍵單擊要閱讀的電子書籍,進(jìn)入由

的畫筆類,通過調(diào)用工廠方法繪制動(dòng)態(tài)頁面效果面產(chǎn)生獲取頁面坐標(biāo)事件,根據(jù)坐標(biāo)來判斷是向前翻頁還是向后翻頁,如圖—3向后翻頁:圖5用戶閱讀界面6.4單點(diǎn)擊按鈕,就回出現(xiàn)選擇界面加書簽看書簽退出閱讀圖—:34

太原工業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)圖菜單功能65書簽操作點(diǎn)擊添加書簽,出現(xiàn)一個(gè)添加書簽的界面,如圖圖添加書簽點(diǎn)擊查看標(biāo)簽就會(huì)出現(xiàn)相應(yīng)文檔的標(biāo)簽列表如圖—圖5

書簽列表35

太原工業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)長(zhǎng)按某個(gè)選項(xiàng)就會(huì)刪除標(biāo)簽。如圖5圖

刪除書簽如果取消則返回標(biāo)簽界面,如果確定則刪除書簽。66書籍操作刪除文檔界面圖中刪除xyy2txt長(zhǎng)按菜單鍵功能是對(duì)于Android組件的長(zhǎng)事件的添加監(jiān)聽功能,如圖5圖刪除書籍36

太原工業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)67最近閱讀在閱讀過得書籍會(huì)添加進(jìn)最近閱讀數(shù)據(jù)庫(kù),方便用戶后期直接點(diǎn)擊進(jìn)入閱讀,如圖圖5最近閱讀列表68用戶登錄通過與服務(wù)器的連接獲取服務(wù)器提供了最新最熱的書籍推薦,先登陸可以記錄該用戶的下載記錄.如圖:圖在線登陸界面37

太原工業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)6.9線中心圖5服務(wù)器獲取的最新資源6性能析。概述及方案特點(diǎn)本軟件是利用語言在平臺(tái)上實(shí)現(xiàn)的一款閱讀軟件,使用起來方便,常容易使用,方便用戶的操作最重要的特點(diǎn)就是實(shí)現(xiàn)簡(jiǎn)單沒有過于復(fù)雜冗余的操作。數(shù)據(jù)庫(kù)是使用sqlite3進(jìn)行存數(shù)。方案特點(diǎn):(1)系統(tǒng)先進(jìn)性本系統(tǒng)的先進(jìn)性主要體現(xiàn)在能觸屏翻頁,能顯示已經(jīng)閱讀的進(jìn)度大大減少了占用用戶的時(shí)間,而且閱讀起來比較方便快捷。(2)系統(tǒng)可擴(kuò)展性由于本系統(tǒng)是基系統(tǒng)手機(jī)開發(fā)的軟件java語言實(shí)現(xiàn),無論是可讀性,可維護(hù)性,是可擴(kuò)展性,都是比較優(yōu)越的(3)智能性38

太原工業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)增加列表顯示功能,以便實(shí)現(xiàn)信息傳遞的快速性、智能性(4)可維護(hù)性安裝簡(jiǎn)單、維護(hù)方便。人性化的用戶界面,操作簡(jiǎn)單、易用6。10.2性能本系統(tǒng)響應(yīng)時(shí)間新處理時(shí)間的轉(zhuǎn)換和傳送時(shí)間取決于硬件的性能,不過一般情況下是用戶的允許等待時(shí)間.其設(shè)置的是觸屏自動(dòng)翻頁,就像

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論