【正文】
out 、TableLayout,由于布局的使用,并且布局之間可以互相嵌套,使得 android 軟件 UI 的設計變得非常靈活,即使是一些非常復雜的界面設計,只要合理的使用布局,也會使開發(fā)變得很容易。它的特點入下:輕量級(只需帶上很小的動態(tài)庫,就能享受它的全部功能) 、獨立性(使用不需要安裝,在部署的時候能省去很多麻煩) 、隔離性(數據庫中所有的信息都包含在一個文件內,方便管理和維護)和安全性(可以同時讀取數據,但同時只有一個能夠寫入數據)等特性。(2)在/。理 工 大 學 畢 業(yè) 設 計15(4)在 下寫入內容。(6)打開/。(8)打開瀏覽器,在地址欄輸入 所示: 圖 bin 目錄圖 歡迎界面的實現本模塊主要完成閱讀器歡迎界面的漸變效果顯示,在進入程序界面時首先調用。 主控制類的實現 ReaderActivity 類是主要控制程序運行的類,實現了各個界面的有序切換,各個按鈕和對話框的監(jiān)聽事件,加載了程序中用到的相關資源,有效地控制了程序的運行。(2)onKeyDownf 方法是重寫父類的 onKeyDown 方法,當按下不同的鍵時,此方法設計返回鍵(4 號鍵)和 Menu 鍵(82 號鍵) ,并且本設計中支持屏幕觸控事件和鍵盤監(jiān)聽事件。(4)sendMessage 方法表示各個界面相互跳轉時調用的方法和不同線程之間傳遞消息的方法。(6) saveCurrentData 和 savePreference 方法表示當程序退出、換書和第一次打開一本書時都要想數據庫中 BookRecord 表中插入數據,第一次打開一本書時,向數據庫中插入數據是因為,如果表中不存在當前書的信息,則無法存書簽。將這些常量值放在一起,不但方便了設計,而且方便管理。 閱讀界面的實現ReaderView 類主要負責自適應屏、繪制閱讀器的主界面、實現鍵盤和屏幕的觸控事件以及實現翻頁功能。(2)onDraw 方法負責標題、廣告條、左右頁面等圖片的繪制。(3)onTouchEvent 方法負責處理屏幕觸控事件,屏幕觸控事件為移動是翻頁特效的實現。理 工 大 學 畢 業(yè) 設 計17歡 迎界面第 一次打開 該 軟件?在 說 明界面退出 了軟件 ?進 入上次 閱讀到 的閱讀 界面軟件說明 界面是是否否圖 從用戶進入軟件到閱讀界面時的流程圖確 定文件讀取的起始 位置計算本頁 字數讀 取相應長度字符并 制作b i t m a p 圖片顯示生 成左右相鄰的兩頁 圖片用 戶點擊跳轉下一 頁面 跳轉上一 頁面點擊 屏幕左 下 角點擊 屏幕右 下 角圖 用戶在閱讀界面時的操作流程圖當用戶進行閱讀界面的時候,首先閱讀控制模塊會根據用戶之前閱讀到的位置來確定載入電子書文本的起始位置,然后會根據手機終端屏幕大小和字體大小來確定該頁應該顯示多少文字。用戶在閱讀的時候可以觸摸屏幕的不同位置進行不同操作,左下角是往前翻頁,右下角是往后翻頁。(1)在 SDCARD 中找書用戶可以將已有的 txt 格式的書放在 SDCARD 中,通過本閱讀器的在 SDCARD 中找書的功能將書加載進閱讀器進行閱讀,具體步驟如下:按下 Menu 鍵,在主界面中彈出的選項中選擇找書,彈出找書對話框,選中 SDCARD,即可根據當前路徑獲得對應文件數組,并將數組中的所有文件加入到文件列表中,然后再為文件列表添加監(jiān)聽,從而實現在點擊某一文件時跳轉至對應頁面的功能。具體步驟如下:當單擊在網絡中找書的按鈕時,調用 downTxt 方法下載 txt 文檔。其中 文件設置了 Dialog 的背景圖片和標題格式,是設置對話框屬性的文件。(2)選擇書簽功能的實現 選擇書簽對話框不同于添加書簽對話框,是用 Java 代碼實現的。b. 用 Java 代碼編寫列表對話框,并且為 ListView 添加內容適配器,將在數據庫中取出的書簽名稱和其對應的頁數的索引加入到 ListView 中。d. 當長時間按住選擇書簽對話框中的某一項時,彈出“是否刪除這條記錄”的對話框,如果單擊“確定”按鈕,則會刪除這條記錄,單擊“取消”按鈕則不會刪除記錄。當單擊小號、中號、大號字體后,如果當前字體與要變換的字體相同,則不發(fā)生變化,否則將字體的大小和中英文間距重新賦值,然后重新繪制當前界面。(2)drawVirtualPage 方法是字體大小變化后,書簽和 HashMap 更新過程中,虛擬繪制主界面中每一頁信息,并且為下一頁的 Left_Start 的值賦值的方法。 b. 為按鈕添加監(jiān)聽,使單擊按鈕后,可以實現更換閱讀內容背景的圖片。 d. 重新繪制左右兩側背景圖片上的文字。 b. 為按鈕添加監(jiān)聽,使單擊按鈕后,可以實現重新設置閱讀界面字體顏色。 音樂播放功能的實現(1)完成自定義對話框的設計。(3)當音樂播放器為空或正在播放曲目二,則更改播放曲目一,在為其設置播放模式后,播放曲目,否則是否播放器,最終返回閱讀主界面。理 工 大 學 畢 業(yè) 設 計22圖 歡迎動畫界面 1圖 歡迎動畫界面 2 用戶閱讀界面若為第一次打開軟件,則在歡迎動畫播放完后進入軟件說明界面,效果如圖 所示。圖 閱讀界面的 menu 功能在主菜單中單擊“找書”按鈕進入找書選擇界面,效果如圖 所示。圖 網絡下載列表界面選擇某一文本并單擊,下載完畢后彈出提示信息,效果如圖 所示。圖 存在要下載文件提示界面在找書選擇界面,單擊“SDCARD”按鈕,進入 SDCARD 文件列表,效果如圖 所示。圖 閱讀界面在主菜單中單擊“書簽”按鈕進入書簽功能界面,效果如圖 所示。圖 添加書簽界面在書簽功能界面中單擊“選擇書簽”按鈕進入選擇書簽界面,效果如圖 所示。圖 刪除書簽界面在主菜單中單擊“自動翻頁”按鈕進入自動翻頁界面,效果如圖 所示。圖 設置界面在設置界面中單擊“背景音樂”按鈕進入背景音樂界面,效果如圖 所示。圖 背景圖片界面在設置界面中單擊“字體顏色”按鈕進入字體顏色界面,效果如圖 所示。圖 字體大小界面畢業(yè)設計總結理 工 大 學 畢 業(yè) 設 計32經過測試,本設計的所有模塊均可正常運行,并且達到了預期的效果。在此,我對其特點和不足作些闡述。本設計的界面特點:界面友好、易于操作維護,采用了大量的人機交互式操作,能很好的完成閱讀的全過程,使瀏覽者一進入就可以獨立的進行自己需要的操作,一目了然。通過最終的運行,可以達到省時的目的,方便,快捷,仿真翻頁,記錄閱讀者最后一次閱讀的信息并在下次打開時自動初始化到上次閱讀到的界面是本設計最大的特點。由于水平有限,難免有不足之處;設計中也還存在不完善之處,有待改進。public static void createOrOpenDatabase(){try { sld= ( /data/data/, null, | )。 (sql1)。 }}建立 BookMark 表的 SQL 語句: String sql2=create table if not exists BookMark+(+mid INTEGER PRIMARY KEY 理 工 大 學 畢 業(yè) 設 計35AUTOINCREMENT,+ridfk INTEGER,+bmname varchar(50),+page INTEGER+)。建立 LastTimePage 表的 SQL 語句: String sql3=create table if not exists LastTimePage+ (+ lid INTEGER PRIMARY KEY AUTOINCREMENT,+ path varchar(50),+ page INTEGER,+ fontsize INTEGER+ )。附錄二 畢業(yè)設計外文翻譯(英文)The Java I/O System理 工 大 學 畢 業(yè) 設 計36Creating a good input/output (I/O) system is one of the more difficult tasks for a language designer. This is evidenced by the number of different approaches. The challenge seems to be in covering all possibilities. Not only are there different sources and sinks of I/O that you want to municate with (files, the console, work connections, etc.), but you need to talk to them in a wide variety of ways (sequential, randomaccess, buffered, binary, character, by lines, by words, etc.). The Java library designers attacked this problem by creating lots of classes. In fact, there are so many classes for Java’s I/O system that it can be intimidating at first (ironically, the Java I/O design actually prevents an explosion of classes). There was also a significant change in the I/O library after Java , when the original byteoriented library was supplemented with charoriented, Unicodebased I/O classes. The nio classes (for new I/O, a name we’ll still be using years from now even though they were introduced in JDK and so are already old) were added for improved performance and functionality. As a result, there are a fair number of classes to learn before you understand enough of Java’s I/O picture that you can use it properly. In addition, it’s rather important to understand the evolution of the I/O library, even if your first reaction is Don’t bother me with history, just show me how to use it! The problem is that without the historical perspective, you will rapidly bee confused with some of the classes and when you should and shouldn’t use them. Input and output Programming language I/O libraries often use the abstraction of a stream, which represents any data source or sink as an object capable of producing or receiving pieces of data. The stream hides the details of what happens to the data inside the actual I/O device. The Java library classes for I/O are divided by input and output, as you can see by looking at the class hierarchy in the JDK documentation. Through inheritance, everything derived from the InputStream or Reader classes has basic methods called read( ) for reading a single byte or an array of bytes. Likewise, everything derived from OutputStream or Writer classes has basic methods called write( ) for writing a single byte or an array of bytes. However, you won’t generally use these met