版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、-PAGE . z畢業(yè)論文論文題目:基于Android的背單詞軟件的設計與實現(xiàn)*: 學 號: 班 級: 專 業(yè):軟件工程 學 院:軟件學院 指導教師: 完成時間:2015年4月17日-. z基于Android的背單詞軟件的設計與實現(xiàn)摘要隨著經濟全球化,我們與外國人的接觸越來越多,英語已經成為了中國與外面交流的主要工具,同時我國的英語教育也開場普及到了小學,人們對學習英語越來越重視。而對于學習英語特別是英語單詞記憶,記憶單詞的方式也在不斷的更新,而今移動互聯(lián)網時代的到來,尤其智能手機的廣泛應用,英語學習的平臺已經逐漸向計算機或者手機等移動設備上轉移,背單詞的方式方法進入一個新的領域。背單詞軟件是
2、當下比擬流行且方便有效的輔助記憶工具,本文介紹的背單詞軟件是一款基于android平臺的應用軟件,其主要功能有單詞學習,單詞背誦,單詞測試,真人發(fā)音,添加生詞本等。同時本文對背單詞軟件開發(fā)中有關系統(tǒng)設計,系統(tǒng)實施方法和設計詞庫等方面進展了探索,以此推動計算機英語輔助軟件開發(fā)。關鍵詞:Android; 背單詞; 英文學習; 軟件開發(fā)-. zDesign and implementation of memorizing word software based on AndroidAbstractWith the economic globalization,we contact with fore
3、igners more and more,English has bee the main tool to municate with foreign in China,English education in our country also started to popularize the primary school,people pay more and more attention to learning English.For learning English especially in English words memory,memorize words way are al
4、so constantly updated,but now the advent of the era of mobile Internet,especially the wide application of smart phones,English learning platform has been gradually shift to puter or on mobile devices such as mobile phones,methods of memorizing words into a new field.Memorizing words software is now
5、more popular and convenient and effective tool of memory,crouching tiger word software is introduced in this paper a based on android platform of application software,its main function is the word study, recite words, word test, pronunciation, to add the new words and so on.At the same time in this
6、paper, the back word software development related to system design, system implementation methods and designs thesaurus has e*plored in such aspects,to promote English puter au*iliary software development.Key words: Android; recite words; English study; software development -. z目錄 TOC o 1-3 h z u HY
7、PERLINK l _Toc390334060摘要 PAGEREF _Toc390334060 h IHYPERLINK l _Toc390334061AbstractPAGEREF _Toc390334061 h IIHYPERLINK l _Toc3903340621. 緒論 PAGEREF _Toc390334062 h 1HYPERLINK l _Toc3903340631.1研究容 PAGEREF _Toc390334063 h 1HYPERLINK l _Toc3903340641.2研究意義 PAGEREF _Toc390334064 h 1HYPERLINK l _Toc390
8、3340651.3研究現(xiàn)狀和開展趨勢 PAGEREF _Toc390334065 h 1HYPERLINK l _Toc3903340662. 平臺與開發(fā)工具 PAGEREF _Toc390334066 h 3HYPERLINK l _Toc3903340672.1 開發(fā)平臺介紹 PAGEREF _Toc390334067 h 3HYPERLINK l _Toc3903340682.2 開發(fā)語言與開發(fā)環(huán)境 PAGEREF _Toc390334068 h 3HYPERLINK l _Toc3903340693. 英語背單詞軟件總體設計與需求分析 PAGEREF _Toc390334069 h 5
9、HYPERLINK l _Toc3903340703.1 Android四大組件簡介 PAGEREF _Toc390334070 h 5HYPERLINK l _Toc3903340713.2 Android 手機應用軟件的UI設計 PAGEREF _Toc390334071 h 6HYPERLINK l _Toc3903340723.3 英語背單詞軟件需求分析與性能分析 PAGEREF _Toc390334072 h 7HYPERLINK l _Toc3903340733.4 英語背單詞軟件操作流程圖與數據庫設計 PAGEREF _Toc390334073 h 7HYPERLINK l _T
10、oc3903340743.4.1 英語背單詞軟件操作流程圖 PAGEREF _Toc390334074 h 7HYPERLINK l _Toc3903340753.4.2 數據庫的創(chuàng)立與設計 PAGEREF _Toc390334075 h 8HYPERLINK l _Toc3903340764. 系統(tǒng)各個模塊的具體實現(xiàn) PAGEREF _Toc390334076 h 13HYPERLINK l _Toc3903340774.1 啟動模塊的實現(xiàn) PAGEREF _Toc390334077 h 13HYPERLINK l _Toc3903340784.2 用戶信息模塊的實現(xiàn) PAGEREF _To
11、c390334078 h 14HYPERLINK l _Toc3903340794.3 用戶單詞學習模塊的實現(xiàn) PAGEREF _Toc390334079 h 16HYPERLINK l _Toc3903340804.4 用戶單詞復習模塊的實現(xiàn) PAGEREF _Toc390334080 h 17HYPERLINK l _Toc3903340814.5 用戶單詞測試模塊的實現(xiàn) PAGEREF _Toc390334081 h 19HYPERLINK l _Toc3903340824.6 生詞本模塊的實現(xiàn) PAGEREF _Toc390334082 h 20HYPERLINK l _Toc3903
12、340834.7 各界面之間切換的實現(xiàn) PAGEREF _Toc390334083 h 21HYPERLINK l _Toc3903340845. 客戶端界面測試 PAGEREF _Toc390334084 h 23HYPERLINK l _Toc3903340855.1 系統(tǒng)測試的目標 PAGEREF _Toc390334085 h 23HYPERLINK l _Toc3903340865.2 測試流程 PAGEREF _Toc390334086 h23HYPERLINK l _Toc3903340875.3 測試用例與測試結果 PAGEREF _Toc390334087 h 23HYPER
13、LINK l _Toc3903340886. 總結 PAGEREF _Toc390334088 h 24HYPERLINK l _Toc3903340896.1 本文工作總結 PAGEREF _Toc390334089 h 24HYPERLINK l _Toc3903340906.2 進一步工作的打算 PAGEREF _Toc390334090 h 24HYPERLINK l _Toc390334091參考文獻 PAGEREF _Toc390334091 h 25HYPERLINK l _Toc390334092致 PAGEREF _Toc390334092 h 25HYPERLINK l _
14、Toc390334093外文原文 PAGEREF _Toc390334093 h 26HYPERLINK l _Toc390334094外文翻譯 PAGEREF _Toc390334094 h 37-. z1. 緒 論1.1研究容本著對用戶學習英語提供便利和有效記憶的目標,該英語背單詞軟件是基于Android手機平臺,通過詞庫的解析與導入,開發(fā)出針對使用Android平臺的手機英語背單詞系統(tǒng)。用戶使用此平臺進展單詞學習、單詞背誦、單詞測試、參加生詞本等。相對于書本辭典操作來說,背單詞可以更簡便的直接的表達給用戶,而且使用方便,操作簡單。用戶作為系統(tǒng)的效勞群體,按照自己的需求選擇詞庫進展單詞學習
15、等,按照自己的方式選擇所需背記單詞的數量。遇到有生僻的單詞可以參加生詞本方便以后的二次查找,節(jié)省時間,方便閱覽。本系統(tǒng)要求主要實現(xiàn)以下功能模塊:用戶能夠選擇詞庫,導入詞庫;用戶能夠進展單詞的學習;用戶能夠進展已學習過單詞的復習,同時制定復習方案;用戶能夠進展單詞的測試;提供單詞的真人發(fā)音功能;提供生詞本功能,用戶可以隨時添加生詞。1.2研究意義以前人們用最簡單的辭典,在眾多的資料中翻閱、查找,費時、費力,而且應用性非常差。設計這么一個背單詞系統(tǒng),使得用戶可以便捷,快速的進展操作,同時也到達了穩(wěn)定,準確的目的。基于Android的英語背單詞程序的設計可以進一步擴大學習英語的途徑,讓廣闊公眾能夠隨
16、時隨地方便且快捷地認識與記憶英語單詞,以提高自身的英語水平。本軟件提供從初次記憶單詞到熟記單詞的所有功能,幫助大家科學學習。當您初次使用本軟件記憶單詞后,系統(tǒng)會自動為您制定學習復習方案,幫助您科學快速地完成記憶單詞的過程。軟件提供測試功能,幫助您自我檢測學習狀態(tài)。更好地發(fā)揮了Android技術對移動互聯(lián)網的現(xiàn)實性作用。1.3研究現(xiàn)狀和開展趨勢據市場研究公司IDC稱,2013年上季度Android手機全球份額達75%。成為最大智能手機系統(tǒng)。今年第一季度,全球Android智能手機出貨量上升至1.621億臺,高于去年同期的9030萬臺;市場份額為75%,高于去年同期的59.1%。其他操作系統(tǒng)的表現(xiàn)
17、則要平穩(wěn)很多。Android越來越引起人們的關注和追捧。移動通信和互聯(lián)網成為當今世界開展最快、市場潛力最大、前景最誘人的兩大業(yè)務,它們的增長速度都是任何預測家未曾預料到的,所以移動互聯(lián)網可以預見將會創(chuàng)造經濟神話。移動互聯(lián)網的優(yōu)勢決定其用戶數量龐大,截至2012年9月底,全球移動互聯(lián)網用戶已達15億。Android是一種以Linu*為根底的開放源碼操作系統(tǒng),采用Linu*核,主要使用于便攜設備。開放手機聯(lián)盟OHA成員可以任意使用和修改安卓的SDK軟件包。系統(tǒng)的開源性使其具有良好的拓展性,一方面,為眾多移動應用開發(fā)者提供了良好的系統(tǒng)性平臺,有利于移動應用的集合;另一方面,終端廠商可以針對自身的特殊
18、需要定制化開發(fā)。與此相比,盡管2010年2月,塞班根本完成開源工作,但由于代碼臃腫,用戶界面設計缺失,塞班的開源并無實際意義,錯失開展良機。因此,基于Android的英語背單詞程序開發(fā),也是現(xiàn)代移動互聯(lián)網時代下催生的人們生活中不可或缺的一個產物。我們認為,安卓操作系統(tǒng)開展迅猛主要得益于免費、開源和良好產業(yè)運作策略,這三點為安卓在智能手機市場贏得更多的開展機遇。系統(tǒng)的免費讓更多的廠商參加,推動了份額的上升;代碼的開源讓更多的開發(fā)者進入應用開發(fā);應用的豐富吸引了更多用戶選擇,這也是谷歌值得眾多廠商學習的地方。此外,谷歌通過OHA聯(lián)合眾多廠商進展系統(tǒng)研發(fā),不斷更新版本,將系統(tǒng)應用推廣到更多的終端產品
19、中,確保用戶體驗持續(xù)改善。3G互聯(lián)網時代下,移動應用越來越多,Android 更新包于2013年2月11日發(fā)布,未來采用Android系統(tǒng)手機越來越多。不僅僅在于手機,在任何移動設備上,都可以采用Android開發(fā)移植到終端設備上,例如電視、冰箱、空調、洗衣機等。將這些設備計入互聯(lián)網,我們可以通過手機實時知道各個設備的狀態(tài),也可以控制它們工作??傊珹ndroid 將帶給我們更加智能、便捷、現(xiàn)代的生活。從而,Android應用的開發(fā),將會越來越龐大,需求將會越來越豐富。開發(fā)英語背單詞手機軟件和其他應用將會越來越普遍,Android將會越來越壯大。-. z2. 平臺與開發(fā)工具2.1開發(fā)平臺介紹本
20、設計采用windows 作為開發(fā)平臺,由于windows系列操作系統(tǒng)做為市場份額最大的PC操作系統(tǒng),無論是用戶數還是基于windows平臺應用數都是遙遙領先的。大多數開發(fā)者都會選擇此平臺作為開發(fā)平臺,而且很多應用在windows 平臺提供了的相應的開發(fā)工具,如Eclipse、QT等。雖然大多數用戶很樂于將 Eclipse 當作 Java 集成開發(fā)環(huán)境IDE來使用,但是 Eclipse 的目標卻不僅僅這樣。Eclipse 這個開發(fā)工具還包括插件的開發(fā)環(huán)境Plug-in Development Environment,PDE,而這個組件主要是針對希望擴展 Eclipse 的人來的,因為Eclips
21、e允許他們構建出與 Eclipse 開發(fā)環(huán)境無縫集成的工具。因為 Eclipse 中的所有東西都是插件存在,對于 Eclipse 提供的插件,并且給用戶提供一致及統(tǒng)一的集成開發(fā)環(huán)境來說,所有的軟件開發(fā)人員都具有一樣的發(fā)揮場所。Eclipse 是一個開放源代碼的、基于 Java 的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組效勞,用于通過插件組件構建開發(fā)環(huán)境。幸運的是,Eclipse 附帶了一個標準的插件集,包括 Java 開發(fā)工具Java Development Kit,JDK。 雖然大多數用戶很樂于將 Eclipse 當作 Java 集成開發(fā)環(huán)境IDE來使用,但 Eclipse 的目標
22、卻不僅限于此。Eclipse 還包括插件開發(fā)環(huán)境Plug-in Development Environment,PDE,這個組件主要針對希望擴展 Eclipse 的軟件開發(fā)人員,因為它允許他們構建與 Eclipse 環(huán)境無縫集成的工具。由于 Eclipse 中的每樣東西都是插件,對于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。本畢設安裝的是Android 開發(fā)插件。2.2開發(fā)語言與開發(fā)環(huán)境Android的上層應用程序是用Java語言開發(fā),同時還需要基于Dalvik虛擬機,所以,Google公司推薦使用主流的Java繼承開發(fā)環(huán)境
23、Eclipse。只有Eclipse還不夠,因為是使用Java語言進展開發(fā),還應該有由SUN公司提供的Java SDK(其中包括JRE:Java Runtime Environment)。此外,Android的應用程序開發(fā)和Java開發(fā)有較大區(qū)別的,所以還需要有Google提供的Android SDK。同時,還需要在Eclipse安裝ADT,為Android開發(fā)提供開發(fā)工具的升級或者變更,是Eclipse下開發(fā)工具的升級下載的工具。eclipse裝有android開發(fā)插件,從而運行Android 模擬器 ,模擬Android智能手機。簡言之,需要以下軟件,才能搭建Android開發(fā)環(huán)境,從而進展
24、Android應用程序的開發(fā)。運行開發(fā)環(huán)境如表2-1所示:表2-1 運行開發(fā)環(huán)境名稱版本語種操作系統(tǒng)Window7旗艦版Sp1簡體中文Eclipse開發(fā)工具 3.6默認ADT安卓開發(fā)工具17默認基于平臺Android1.6以上默認-. z3. 英語背單詞軟件總體設計與需求分析3.1Android四大組件簡介ActivityActivity是Android應用程序和用戶進展交互的窗口,它是Android系統(tǒng)構造中最根本的一種,Activity要為各界面的狀態(tài)進展保持,它做許多的持久化事情,良好的管理生命周期和一些要跳轉的邏輯。一個Activity一般展現(xiàn)一個用戶界面。比方,一個Activity可
25、以為一個用戶展示選擇的菜單列表或者展示出一些圖片和圖片的標題。對于一個消息效勞應用程序,它可能包括一個顯示聯(lián)系人列表的界面,一個編寫信息的界面,和其它的一些查看信息及修改應用程序的設置而用到的Activity。雖然這些Activity共同工作,一起構成了一個應用完整的程序,但是每個Activity都是相對獨立的。ServiceService在后臺,為Activity效勞,封裝好一些完整的功能邏輯,并承受上面的指令,然后完成相關的事務處理,使用中要定義好承受的Intent提供同步及異步的接口。Service雖然沒有用戶的界面,但是Service會在后臺一直運行。比方,Service可能會在用戶處
26、理其它事務時,同時播放音樂,或者把網絡上的數據獲取下來,或者進展一些運算,然后把計算的構造提供應Activity,讓它展示給用戶。使用中,Service都要繼承類Serivce。和Activity等其它組件一樣,Service運行在應用程序的主線程中。因此Service不能讓其它組件或者用戶界面阻塞,這個通常就要為這些Service類增加線程執(zhí)行耗時的任務。Broadcast ReceiverBroadcast Receiver是Android提供的第三方應用數據的方案,它可以派生出Content Provider這個類,然后對外提供數據,它可以像數據庫一樣進展選擇排序,它屏蔽部的細節(jié),并對外
27、提供了一個統(tǒng)一接口模型,這很好的簡化上層應用,它對數據整合提供了更方便的方式。Broadcase Receiver并不執(zhí)行任何的任務,它僅是承受并響應播送的通知的一類組件。而大局部的播送的通知是由系統(tǒng)產生,比方改變時區(qū)時,電池電量低時,用戶選擇一幅圖片或用戶換了語言首時。對于應用程序,也同樣可以良好的發(fā)送播送通知,比方通知其他的應用程序*些數據已經下載到設備上來并且可以使用。Content Provider 承受一種或多種的Intent作為觸發(fā)事件,對于承受到的相關消息,進展一些簡單處理,轉換成Notification,這統(tǒng)一了Android系統(tǒng)的事件播送模型。對于應用程序可以通過Conten
28、tProvider來其它的應用程序中的一些私有的數據,這即是Android系統(tǒng)中提供的一種標準的共享數據的機制。對于共享的數據可存儲在系統(tǒng)的文件中、SQLite中或者其它的媒體中。ContentProvider實現(xiàn)類擴展自ContentProvider這個類,并通過實現(xiàn)此類的一組標準接口,使其它的應用程序能存取它控制的一些數據。但是應用程序并不是直接調用ContentProvider中的一些方法,而是間接的,通過類ContentResolver來實現(xiàn)。ContentResolver這個類能夠與任何的一個ContentProvider進展通信,它能與ContentProvider良好的合作管理進
29、程間通信。3.2Android 手機應用軟件的UI設計由于Android系統(tǒng)是一款手機操作系統(tǒng),所以基于此系統(tǒng)的應用開發(fā)也是基于手機屏幕大小的。手機屏幕大小不一,但要求軟件能夠適應不同大小的手機屏幕,也就是界面能夠自動適應,而且屏幕能夠翻轉基于重力感應使屏幕畫面自動水平和垂直切換。Android 界面由兩大根本組件組成:即容器和控件。一個窗口由一個根本的容器組成, 容器中可以放容器或者控件,每一個容器或者控件都有大小、長寬等屬性。在一個Android 應用中,一個ActivityActivity是Android中最常用也是最根本的組件通常就是一個單獨的屏幕,每一個Activity都被實現(xiàn)為一個
30、獨立的類,并且繼承Activity這個子類。Activity提供了與用戶交互的可視化界面。創(chuàng)立一個Activity一般繼承Activity父類。覆蓋Activity的onCreate()方法,在該方法中調用setOnConte*tView方法來展示要顯示的視圖。整個Android 工程劃分不同文件在不同文件夾中,android使用*ml文件作為系統(tǒng)的布局文件,android 資源文件和 文件夾如圖3-1所示:圖3-1Android工程文件構造要想控制手機界面的顯示方式,則必須使用布局這一概念。布局就像容器,里面可以裝下很多控件。布局里面還可以套用其他的布局。這樣就可以實現(xiàn)界面的多樣化以及設計的
31、靈活性。 (1) LinearLayout線性布局: 線性版面配置,在這個標簽中,所有元件都是按由上到下的排隊排成的。包括垂直線性布局和水平線性布局。(2) RelativeLayout相對布局就是以相對的方式定位布局,允許子元素指定他們相對于其它元素或父元素的位置通過ID指定。相對布局例如如圖3-2所示:圖3-2Android相對布局(3) FrameLayout幀布局是最簡單的一個布局對象。是一個框架布局樣式,可以用include標簽載入定義的另一個layout文件,所有的子元素將會固定在屏幕的左上角;你不能為FrameLayout中的一個子元素指定一個位置。后一個子元素將會直接在前 一個
32、子元素之上進展覆蓋填充,把它們部份或全部擋住除非后一個子元素是透明的。 (4) TableLayout表格布局 是一種類似表格的布局,這種布局會把包含的元素以行和列進展排列。表格的列數為所有行中的最大列數;每一行可以是一個TableRow布局對象,也可以是普通的View視圖對象,TableRow里面每一個元素占一列TableLayout總列數由列數最多的那一行決定。因此,要想實現(xiàn)各種顯示效果,可根據不同的界面需求,選用不同的布局方法。3.3英語背單詞軟件需求分析與性能分析技術可行性上,Android是一個成熟強大的移動操作系統(tǒng),而且是一個開源的系統(tǒng),市場占有率很高。Android應用是用jav
33、a語言,雖然版本有好多,但一般會向下兼容,用Eclipse + ADT來創(chuàng)立應用程序,Android提供開發(fā)的足夠的接口API讓開發(fā)者開發(fā)功能強大的應用程序。 經濟可行性上,該應用程序不需要效勞器端,不需要與別的應用進展交互,只需要本地Android智能機設置好,用戶學習容自動保存,而且復習方案可自行設置提醒。占用存小,用戶電池消耗小。所以該方案是可行的。操作可行性上,利用現(xiàn)有的windows系統(tǒng)進展開發(fā)。使用Eclipse作為開發(fā)工具以及使用Sqlite作為數據庫,通過模擬器進展程序調試,然后通過android智能機進展功能測試。整個過程平臺廣泛,皆可實現(xiàn)。系統(tǒng)性能分析方面要求程序響應速度快
34、、平安性高、信息處理速度快。3.4英語背單詞軟件操作流程圖與數據庫設計3.4.1 英語背單詞軟件操作流程圖本英語背單詞軟件的操作流程圖如圖3-3所示:啟動選擇詞庫學習習復 習測 試生詞本發(fā)音參加生詞本發(fā)音參加生詞本測試結果參加生詞本編輯單詞刪除圖3-3 操作流程圖數據庫的創(chuàng)立與設計當前android平臺采用的是sqlite數據庫。SQLite數據庫功能強大,使用方便。本系統(tǒng)使用了SQLite數據庫來保存英文單詞信息。在Android中創(chuàng)立和翻開一個數據庫都可以使用openOrCreateDatabase方法來實現(xiàn),本系統(tǒng)創(chuàng)立了名為wordroid.db的數據庫,并返回一個SQLiteDatab
35、ase對象db如下:SQLiteDatabase db=SQLiteDatabase.openOrCreateDatabase( DB_NAME, null);DB_NAME為數據庫的儲存地址:data/data/wordroid.model/databases/wordroid.db 創(chuàng)立表通過e*ecSQL方法來執(zhí)行一條SQL語句。本系統(tǒng)創(chuàng)立了一個名為sql的表。具體代碼如下:String sql=CREATE TABLE + table + ( ID te*t not null, SPELLING te*t not null , MEANNING te*t not null, PHONE
36、TIC_ALPHABET te*t, LIST te*t not null + );db.e*ecSQL(sql);向表中添加一條數據使用insert方法來添加數據即單詞。具體實現(xiàn)如下:db.insert(table, null, values);通過使用update方法來修改表中數據,具體實現(xiàn)如下:db.update(table, values, whereClause, whereArgs);通過使用delete方法從表中刪除數據。關閉數據庫很重要,經常容易忘記。直接使用SQLiteDatabase的close方法。在Android中查詢數據是通過Cursor類實現(xiàn)的,使用SQLiteDa
37、tabase.query()方法時,會得到一個Cursor對象,Cursor指向的就是每一條數據。注意Android使用Cursor類返回一個需要的值,Cursor作為一個指針從數據庫查詢返回結果,使用Cursor允許Android更有效地管理它們需要的行和列,運用cursor.moveToFirst()是對Cursor指向的位置進展操作:移到第一行。wordroid.db文件放在Eclipse Android工程中的res文件夾下的raw目錄中,通過使用getResources().openRawResource方法獲得raw目錄中資源的InputStream對象,然后將該InputStre
38、am對象中的數據寫入手機存或SD卡的目錄中相應文件中。如圖3-4所示:圖3-4 數據庫文件在wordroid數據庫中主要包含以下幾個表格:表BOOKS 該表記錄了詞庫的根本信息,包括詞庫的ID,詞庫的名稱,參加時間,list數量,單詞數量。如下表3-1所示:表3-1 BOOKS表字段類型非空默認值主鍵描述IDte*t編號NAMEte*t名稱GENERATE_TIMEte*t參加時間NUMOFLISTte*tList數量NUMOFWORDte*t單詞數量BOOKS表具體容如圖3-5所示:圖3-5 表BOOKS表book1該表記錄了單詞的根本信息,包括單詞的編號,單詞的拼寫,單詞的意思,單詞音標,
39、所屬list. 如下表3-2所示:表3-2 book1表字段類型非空默認值主鍵描述IDte*t編號SPELLINGte*t拼寫MEANNINGte*t意思PHONETIC_ALPHABETte*t音標LISTte*t所屬list表book1具體容如圖3-6所示:圖3-6表book1表book2該表記錄了單詞的根本信息,包括單詞的編號,單詞的拼寫,單詞的意思,單詞音標,所屬list。見表3-2。表book2具體容如圖3-7所示:圖3-7表book2表book3該表記錄了單詞的根本信息,包括單詞的編號,單詞的拼寫,單詞的意思,單詞音標,所屬list。 見表3-2。表book3具體容如圖3-8所示:
40、圖3-8表book3表PLAN該表記錄了復習方案的根本信息,包括詞庫的編號,所在list,已學習list,學習時間,復習次數,復試時間,最正確得分,是否復習。 如下表3-3所示。表3-3 PLAN表字段類型非空默認值主鍵描述BOOKIDte*t詞庫的編號LISTte*t所在listLEARNEDte*t已學習listLEARN_TIMEte*t學習時間REVIEW_TIMESte*t復習次數REVIEWTIMEte*t復試時間BESTSCOREte*t最正確得分SHOULDREVIEWte*t是否復習表PLAN具體容如圖3-9所示:圖3-9表PLAN-. z4. 系統(tǒng)各個模塊的具體實現(xiàn)4.1啟
41、動模塊的實現(xiàn)啟動界面是系統(tǒng)的第一個界面,目的是給用戶一種直觀的感受,給用戶一種良好的感覺。啟動界面的布局文件為layout文件夾里的login.*ml,由一個Linearlayout線性布局 構成,里面包含一個ImageView 圖片控件并填充整個手機界面,考慮到橫豎屏切換和屏幕大小,在res的drawable-hdpi、drawable-ldpi和drawa ble-mdpi三個文件夾分別放三種尺寸圖片,分辨路為480*800、800*480、320*460并且啟動畫面要覆蓋整個手機屏幕,啟動界面如圖4-1所示:圖4-1 啟動界面啟動界面最主要的工作時設置畫面延時,并且能夠在畫面顯示的3秒對
42、HOME鍵、返回鍵,做出相應,并且可以支持橫豎屏切換。實現(xiàn)延時效果主要使用線程來實現(xiàn)。當android程序啟動時,首先由AndroidMainfest.*ml系統(tǒng)主配置文件來查找第一個要顯示界面第一個要顯示的Activity必須要包含在與之間代碼如下:protectedvoid onCreate(Bundle savedInstanceState) / TODO Auto-generated method stubthis.setTitle(安卓背單詞-Wordroid);super.onCreate(savedInstanceState);this.setContentView(R.layo
43、ut.login);LayoutInflater mInflater = LayoutInflater.from(this);myView = mInflater.inflate(R.layout.main, null);Thread thread = new Thread()publicvoid run()try Thread.sleep(2000);Message m = new Message();m.what=1;Main.this.mHandler.sendMessage(m); catch (InterruptedE*ception e1) / TODO Auto-generate
44、d catch blocke1.printStackTrace();thread.start();OperationOfBooks OOB = new OperationOfBooks();SharedPreferences setting = getSharedPreferences(wordroid.model_preferences, MODE_PRIVATE);OOB.setNotify(setting.getString(time, 18:00 下午),Main.this); File dir = new File(data/data/wordroid.model/databases
45、); if (!dir.e*ists() dir.mkdir(); if (!(new File(SqlHelper.DB_NAME).e*ists() FileOutputStream fos;try fos = new FileOutputStream(SqlHelper.DB_NAME);byte buffer = newbyte8192; int count = 0; InputStream is = getResources().openRawResource( R.raw.wordorid); while (count = is.read(buffer) 0) fos.write(
46、buffer, 0, count); fos.close(); is.close(); catch (E*ception e) / TODO Auto-generated catch blocke.printStackTrace(); SharedPreferences settings=getSharedPreferences(SETTING_BOOKID, 0);DataAccess.bookID=settings.getString(BOOKNAME, );OOB.UpdateListInfo(Main.this);initWidgets();登錄界面由SplashActivity.ja
47、va類負責顯示。然后根據當前類要顯示布局文件文件來繪制整個界面。隨之,啟動延時線程,采用循環(huán),循環(huán)一次線程休眠100ms防止系統(tǒng)卡頓。按下HOME鍵則返回手機主界面,延時暫停,再點擊啟動程序時延時線程繼續(xù)運行,直到3s后,跳到下一個界面。當按下返回鍵時,程序將關閉。4.2用戶信息模塊的實現(xiàn)該界面的布局文件為main.*ml,整個界面直觀明了的展示了該系統(tǒng)的主要功能以及用戶學習進度。界面用一圖片作為背景,在界面左上角顯示兩個圖片按鈕(ImageButton):刪除按鈕與重置按鈕,組成一個線性布局。在界面中間上方處顯示下拉列表組件Spinner,給用戶提供詞庫的選擇:GRE紅寶書上,GRE紅寶書中
48、,GRE紅寶書下以及導入新詞庫。在界面中間布局了三個文本框Te*tview和兩個使用進度條ProgressBar,組成一個線性布局。一個文本框用來顯示用戶學習信息:詞庫名稱,總詞匯量與創(chuàng)立時間;兩個使用進度條分別顯示已學習list的數量與已復習list的數量。在界面的的底部布局了四個按鈕Button:學習,復習,測試,生詞本。組成了一個線性布局。這些控件在一起采用相對布局,可以使這些控件的位置相對擺放,靠在父容器下方,不至于零散。用戶信息主界面如圖4-2所示:圖4-2 用戶信息主界面上文提到了該界面給用戶提供詞庫選擇的下拉列表組件Spinner,詞庫選擇則要為下拉列表定義一個適配器,這里就用到
49、前面定義的books;同時為適配器設置下拉列表下拉時的菜單樣式;最后將適配器(adapter)添加到下拉列表上(pickBook)。代碼如下:ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, books);adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);pickBook.setAdapter(adapter);事件pickBook.setOnItemSelectedLi
50、stener(new OnItemSelectedListener()為下拉列表設置各種事件的響應,這個事響應菜單被選中。同時該界面initWidgets() 實現(xiàn)了桌面小插件的設置,把用戶生詞本的容直接呈現(xiàn),方便用戶的瀏覽。對于界面左上角的兩個刪除與重置按鈕,通過 onClick(View v)事件,頁面上顯示一個對話框dialog,dialog的樣式設置由res,文件夾下的values文件夾dialogStyle.*ml負責,界面顯示時,先生成一個dialog對象,然后顯示這個dialog。詞庫由wordroid.db數據庫里的表Book1, Book2, Book3組成,通過this.s
51、etListAdapter(new ArrayAdapter(this, R.layout.file_row, fileNames);實現(xiàn)詞庫的導入操作。相關代碼如下:super.onCreate(savedInstanceState);this.setTitle(導入新詞庫);this.setContentView(R.layout.import_book);setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);File f = new File(/sdcard/);File files=f.listFiles()
52、;fileNames = new Stringfiles.length;for (int i=0;ifileNames.length;i+)fileNamesi=filesi.getName();this.setListAdapter(new ArrayAdapter(this, R.layout.file_row, fileNames);4.3用戶單詞學習模塊的實現(xiàn)該界面的布局文件為studyword_main.*ml和studyword.*ml。studyword_main.*ml文件里顯示兩個文本框,構成一個框架布局FrameLayout。分別為未學習過的LIST和所有的LIST;同時顯
53、示各項LIST列表。用戶單詞學習列表界面如圖4-3所示:圖4-3 用戶單詞學習列表界面Studyword.*ml布局文件界面上方布局了一個文本框:單詞記憶。界面中間顯示一個圖片按鈕和兩個文本框,構成一個線性布局。圖片按鈕為發(fā)音標示,按鈕的屬性設置為android:drawable/btn_default,文本框分別為拼寫spelling與單詞解釋info。界面底部顯示三個按鈕,構成一個線性布局。按鈕分別為:上一個,參加生詞本,下一個。用戶單詞學習記憶界面如圖4-4所示:圖4-4 用戶單詞學習記憶界面重復參加生詞本以后會提示:生詞本中已包含這個單詞;強制退出時會提示學習未完成,進展選擇。該學習模
54、塊的機器發(fā)音功能通過TTS引擎實現(xiàn),TTS即Te*tToSpeech,將所指定的文本轉成不同語言音頻輸出。如果用戶手機支持TTS發(fā)音功能,首先設置發(fā)音語言tts.setLanguage(loc),判斷語言可用后,使用Speak()方法可以直接在應用程序中實現(xiàn)語音功能tts.speak(list.get(currentnum).getSpelling(),Te*tToSpeech.QUEUE_ADD,null)。發(fā)音完成后,回收TTS即可,當確定應用程序不再需要TTS的相關功能后,可以在Activity的OnDestroy()方法中調用super.onDestroy()釋放當前TTS實體所占用的
55、資源。相關代碼如下:public class TTS private Te*tToSpeech.OnInitListener ttsInitListener = new Te*tToSpeech.OnInitListener() Overridepublic void onInit(int status) Locale loc = new Locale(us, , ); if (tts.isLanguageAvailable(loc) = Te*tToSpeech.LANG_AVAILABLE)tts.setLanguage(loc); tts.setOnUtterancepletedList
56、ener(ttsUtterancepletedListener);4.4用戶單詞復習模塊的實現(xiàn)該界面的布局文件為reviewlayout.*ml。界面的上方布局了一個文本框:單詞復習。界面中間顯示一個圖片按鈕和兩個文本框,構成線性布局嵌套。圖片按鈕為發(fā)音標示,按鈕的屬性設置為android:drawable/btn_default,文本框分別為拼寫spelling與單詞解釋info。界面底部顯示三個按鈕,另有兩個隱藏按鈕,構成一個線性布局。按鈕分別為:參加生詞本,我記得,不記得了,記對了,記錯了。用戶單詞復習界面如圖4-5所示:圖4-5 用戶單詞復習界面按下我記得按鈕文本框顯示單詞的解釋,界面
57、下方顯示記對了記錯了兩個按鈕,按下記對了進入下一個單詞的復習。強制退出時會提示復習未完成,進展選擇。該單詞復習模塊首先需要對已學習過的list進展數據存儲,這里使用Activity類的getSharedPreferences方法獲得SharedPreferences對象,其中存儲key-value的文件的名稱由getSharedPreferences方法的第一個參數指定;使用該接口的edit獲得SharedPreferences.Editor對象,再通過SharedPreferences.Editor接口的putString方法保存數據。進入復習界面后,則通過getString讀取保存的lis
58、t。用戶在復習選擇時通過setVisibility()實現(xiàn)各個按鈕控件的可見與否。復習完成時生成一個dialog對象,然后顯示這個dialog。相關核心代碼如下:private void UpdateView() if (currentnumlist.size()SharedPreferences setting = getSharedPreferences(wordroid.model_preferences, MODE_PRIVATE);if(setting.getBoolean(iftts, false)Thread thread =new Thread(new Runnable() p
59、ublic void run()try Thread.sleep(500);tts.speak(list.get(currentnum).getSpelling(),Te*tToSpeech.QUEUE_FLUSH, null); public void onClick(DialogInterface dialog, int whichButton) tts.shutdown();finish();Intent intent = new Intent();intent.setClass(Review.this, ReviewMain.class);startActivity(intent);)
60、.create();4.5用戶單詞測試模塊的實現(xiàn)用戶單詞測試界面的布局文件為test_list_item.*ml,test_list.*ml和test.*ml。test_list.*ml布局文件界面顯示了一個文本框和一個使用列表ListView,文本框為選擇測試單元,使用列表控件包含所選詞庫所有的list并顯示最高正確率。點擊*個list后進入test.*ml布局文件界面,該界面的上方布局了一個文本框:單詞測試。界面中間顯示一個文本框和一個單項選擇鈕組RadioGroup,構成線性布局。文本框的屬性設置為android:attr/te*tAppearanceSmall,容為單詞與單詞的拼寫;單
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 溫州大學《小學音樂課程設計與實踐》2023-2024學年第一學期期末試卷
- 2024新版?zhèn)€體勞動協(xié)議樣本版
- 2024監(jiān)理服務擴展合同標準文本一
- 2025年度新能源汽車充電樁采購安裝合同3篇
- 二零二五年科技園區(qū)PPP項目合同第三、四章技術創(chuàng)新與產業(yè)支持細則3篇
- 唐山科技職業(yè)技術學院《吉他(二)》2023-2024學年第一學期期末試卷
- 蘇州農業(yè)職業(yè)技術學院《美國文學史與作品選讀》2023-2024學年第一學期期末試卷
- 二零二五年度班主任班級管理師徒實踐合作協(xié)議3篇
- 事業(yè)單位專任人員2024河南聘用協(xié)議模板版
- 石家莊城市經濟職業(yè)學院《制藥工程學》2023-2024學年第一學期期末試卷
- 護理倫理學(第二版)高職PPT完整全套教學課件
- 帕薩特B5維修手冊及帕薩特B5全車電路圖
- GB/T 25919.1-2010Modbus測試規(guī)范第1部分:Modbus串行鏈路一致性測試規(guī)范
- GB/T 22484-2008城市公共汽電車客運服務
- GB/T 14040-2007預應力混凝土空心板
- 帶狀皰疹護理查房課件整理
- 奧氏體型不銹鋼-敏化處理
- 交通信號控制系統(tǒng)檢驗批質量驗收記錄表
- 弱電施工驗收表模板
- 探究基坑PC工法組合鋼管樁關鍵施工技術
- 國名、語言、人民、首都英文-及各地區(qū)國家英文名
評論
0/150
提交評論