作業(yè):記事本APP。要求:
(1) 給出實(shí)現(xiàn)源程序,對源程序加以說明;
(2) 給出屏幕運(yùn)行結(jié)果的截圖,運(yùn)行結(jié)果含有個(gè)人特征;
(3) 用word文檔提交,文件名:班號-姓名-學(xué)號后3位-作業(yè)。
1.頁面設(shè)計(jì)美觀,可以正確顯示數(shù)據(jù)(20分)。
2.實(shí)現(xiàn)數(shù)據(jù)保存、查詢、修改和讀取功能(20分)。
3.調(diào)用系統(tǒng)相機(jī)錄制視頻,應(yīng)用內(nèi)播放(20分)。
4.拍攝照片,保存在圖庫中,應(yīng)用內(nèi)顯示 (20分)。
5.應(yīng)用繪圖板手寫記錄,將圖片保存在圖庫中(20分)。
下載地址 https://gitee.com/Cutele/notepad
運(yùn)行結(jié)果
說明文檔 懶得貼圖片了
具體見word吧
目錄
一、基本UI頁面的編寫 2
1.1 主頁面 2
1.2 記事頁面 3
1.3 錄音頁面 4
1.4 手寫板頁面 5
1.5 錄音詳情頁面 6
1.6 圖片詳情頁面 6
1.7 錄像詳情頁面 7
二、數(shù)據(jù)的保存、查詢、修改和讀取功能 7
2.1 數(shù)據(jù)庫的建立 7
2.2 數(shù)據(jù)庫字段的設(shè)置 7
2.3 數(shù)據(jù)接口的設(shè)立 8
2.4 記事的增加 8
2.5 記事的查找 9
2.6 記事的刪除 9
2.7 記事的修改 10
三、多媒體功能的應(yīng)用 10
3.1 文字 11
3.2 錄音 11
3.3 拍照 13
3.4 視頻 14
3.5 手寫板 14
四、實(shí)驗(yàn)總結(jié) 16
4.1 運(yùn)行結(jié)果展示 16
一、基本UI頁面的編寫
1.1主頁面
主頁面主要是展現(xiàn)所有筆記的縮略圖以及跳轉(zhuǎn)到新增記事頁面。
對于展現(xiàn)筆記的縮略圖,用listview來動(dòng)態(tài)獲取數(shù)據(jù)庫中存的信息。
在右下角設(shè)置圖標(biāo),點(diǎn)擊后即可跳轉(zhuǎn)到記事頁面。
對于listview中的每一項(xiàng)筆記,都展現(xiàn)題目和創(chuàng)建日期,方便使用者對所有筆記做出區(qū)分。
xml的基本布局代碼:
MainActivity中的初始化
給右下角圖標(biāo)添加點(diǎn)擊事件,點(diǎn)擊后跳轉(zhuǎn)到新增記事頁面。
1.2記事頁面
記事頁面由上、中、下三個(gè)部分構(gòu)成。
上部分為該頁面的導(dǎo)航欄,左邊為返回上一級的圖標(biāo),右邊為保存本記事的圖標(biāo),中間可以輸入該記事的標(biāo)題。
中間部分為記事的編輯框部分,可以在這里輸入五種內(nèi)容,分別為文字、錄音、視頻、照相和手寫。
下部分為多媒體的選項(xiàng),點(diǎn)擊圖標(biāo)可以插入對應(yīng)的內(nèi)容。
在中間部分的編輯框中,新寫了一個(gè)類繼承EditText,對每一行的文字都添加了下劃線,方便區(qū)分,使得頁面更加美觀。
1.3錄音頁面
錄音頁面是在記事頁面后點(diǎn)擊下方的錄音圖標(biāo)跳轉(zhuǎn)后的頁面。在該頁面可以進(jìn)行錄音,試聽錄音,保存錄音。該頁面也是上中下三部分。上部分主要是導(dǎo)航欄,有返回和確定兩個(gè)按鈕,點(diǎn)擊返回可以返回上一級頁面,點(diǎn)擊確定可以保存數(shù)據(jù)。
中間部分為錄音圖標(biāo)和計(jì)時(shí)器,點(diǎn)擊錄音圖標(biāo)可以試聽錄音和停止試聽錄音。下面的計(jì)時(shí)器是動(dòng)態(tài)顯示的,隨著錄音的試聽動(dòng)態(tài)變化。
下部分為錄音、停止錄音的按鈕。初次點(diǎn)擊按鈕后,開始錄音;正在錄音時(shí),點(diǎn)擊該按鈕錄音停止并且自動(dòng)保存到本地。如果再次點(diǎn)擊該按鈕,將重新進(jìn)行錄音并且替換上次保存的文件,這樣每次不會保存重復(fù)的文件。
1.4手寫板頁面
手寫板的頁面有兩部分構(gòu)成,上部分為導(dǎo)航欄,有返回和確定兩個(gè)按鈕。點(diǎn)擊返回可以返回到編輯記事頁面,點(diǎn)擊確定可以將圖片保存到本地并且展現(xiàn)到記事頁面上。
下部分為手寫的主要區(qū)域,可以設(shè)置畫筆的顏色、粗細(xì)和橡皮擦。橡皮擦實(shí)際上就是白色顏色的畫筆。還設(shè)置了imgview用來展現(xiàn)用戶的軌跡和圖像。
1.5錄音詳情頁面
錄音詳情頁面是在編輯記事里插入錄音后,會將錄音圖標(biāo)展現(xiàn)到頁面上,再次點(diǎn)擊該圖標(biāo)就可以進(jìn)入錄音詳情,播放錄音。
導(dǎo)航欄只有返回按鈕,設(shè)立在左上角,點(diǎn)擊該按鈕可以返回編輯記事頁面。中間為錄音圖標(biāo)和動(dòng)態(tài)更新的計(jì)時(shí)器。
1.6圖片詳情頁面
圖片詳情頁面是在編輯記事頁面插入圖片后,再點(diǎn)擊該圖片就可以查看圖片的放大圖。導(dǎo)航欄為返回上一級,下面添加了imgview用來展現(xiàn)圖片。
1.7錄像詳情頁面
在編輯記事頁面點(diǎn)擊錄像后,進(jìn)入此頁面。點(diǎn)擊錄像可以調(diào)用系統(tǒng)相機(jī)進(jìn)行拍照。下面的VideoView,可以展現(xiàn)剛剛錄制的視頻。
二、數(shù)據(jù)的保存、查詢、修改和讀取功能
2.1 數(shù)據(jù)庫的建立
采用room框架建立數(shù)據(jù)庫,并且使用了單例模式進(jìn)行設(shè)計(jì),這樣確保只有一個(gè)對象被創(chuàng)建。
2.2 數(shù)據(jù)庫字段的設(shè)置
考慮一個(gè)記事本主要包含的內(nèi)容,無異于標(biāo)題、內(nèi)容和創(chuàng)建時(shí)間,所以選擇這三個(gè)作為數(shù)據(jù)庫中表Data的字段。為了區(qū)分不同的筆記,還應(yīng)當(dāng)增加id自增使得其是Data的主鍵。注意多媒體的東西,如錄音、圖片等等都是將路徑保存到數(shù)據(jù)庫里,等編輯記事的時(shí)候再將其從路徑中取出來并且展現(xiàn)在頁面上。
2.3 數(shù)據(jù)接口的設(shè)立
分析記事本的需求得到應(yīng)當(dāng)有以下幾種操作:增加記事,刪除全部記事,查詢所有記事,按id刪除記事,按id查找記事,更新記事。
2.4 記事的增加
在編輯記事頁面,點(diǎn)擊右上角的圖標(biāo)可以將記事保存到數(shù)據(jù)庫。添加時(shí),獲取編輯頁面的標(biāo)題、內(nèi)容和系統(tǒng)的時(shí)間。對于圖片、錄音等多媒體而言,保存的是他們在手機(jī)上存儲的路徑。
2.5 記事的查找
在主頁面上,應(yīng)當(dāng)顯示數(shù)據(jù)庫中所有筆記的列表視圖,這就用到了數(shù)據(jù)庫的查詢。
2.6 記事的刪除
給列表中的每一項(xiàng)都添加長按事件,長按后彈出選擇框,可以選擇刪除或修改。選擇刪除的話,根據(jù)id查找到該項(xiàng),刪除。
2.7 記事的修改
點(diǎn)擊修改后也進(jìn)入編輯記事頁面,并且應(yīng)當(dāng)將原先的記事內(nèi)容展現(xiàn)在頁面上。那么新增記事和修改記事都是進(jìn)入編輯記事頁面,可以在intent對象里多增加一個(gè)參數(shù)來表示是編輯還是新增,并且傳一下編輯對象的id值,這樣進(jìn)入編輯頁面的時(shí)候就可以將記事內(nèi)容展現(xiàn)在頁面上了。
三、多媒體功能的應(yīng)用
3.1 文字
正常的EditText就可以輸入文字,設(shè)置監(jiān)聽事件就可以進(jìn)行監(jiān)聽和保存。
3.2 錄音
錄音使用的是安卓自帶的MediaRecorder和MediaPlayer。在點(diǎn)擊錄音的時(shí)候,調(diào)用new MediaRecorder()并且進(jìn)行初始化設(shè)置。
在點(diǎn)擊試聽的時(shí)候,調(diào)用MediaPlayer進(jìn)行播放。
這樣就完成了基本錄音功能的實(shí)現(xiàn)。接下來實(shí)現(xiàn)各個(gè)圖標(biāo)的點(diǎn)擊事件和計(jì)時(shí)器的自動(dòng)播放。
在試聽錄音、播放錄音或進(jìn)行錄音時(shí),下面的計(jì)時(shí)器是在變化的。對此計(jì)時(shí)器,開辟一個(gè)單獨(dú)的線程來處理。每次動(dòng)態(tài)的設(shè)置時(shí)間的變化,并且修改textview的值。
對于麥克風(fēng)的圖標(biāo)來說,如果當(dāng)前未錄音,點(diǎn)擊應(yīng)當(dāng)提示用戶先錄音。所以可以設(shè)一個(gè)變量來標(biāo)記用戶是否已經(jīng)開始錄音。
如果已經(jīng)有錄音文件的話,應(yīng)當(dāng)區(qū)分現(xiàn)在點(diǎn)擊是播放錄音和暫停播放錄音。設(shè)置變量isPlaying用來區(qū)分。
點(diǎn)擊返回后,刪除已經(jīng)保存的錄音文件,返回編輯頁面。點(diǎn)擊確定后,將路徑返回給編輯頁面。
3.3 拍照
編輯頁面點(diǎn)擊拍照后,調(diào)用系統(tǒng)自帶的相機(jī)進(jìn)行拍照,跳轉(zhuǎn)到系統(tǒng)相機(jī),拍照后保存在本地圖庫,并且將路徑返回。
重寫onActivityResult方法,記錄不同的requstcode對應(yīng)不同的操作。用Uri存取回的數(shù)據(jù)。
查看圖片時(shí),將圖片的路徑放入intent中,跳轉(zhuǎn)到查看圖片頁面后,利用bitmap加載路徑中的圖片,放到imgview中。
3.4 視頻
點(diǎn)擊錄像跳轉(zhuǎn)到對應(yīng)的錄像類
在錄像頁面中點(diǎn)擊錄像可以調(diào)用系統(tǒng)相機(jī)進(jìn)行錄像
系統(tǒng)相機(jī)錄像完成后,將對應(yīng)的文件實(shí)例化到播放器上。
3.5 手寫板
編輯記事頁面點(diǎn)擊手寫后,進(jìn)入手寫板頁面。
給手寫板的imgview設(shè)置觸摸事件,記錄繪制的路徑。每次按下時(shí)記錄點(diǎn)擊位置,移動(dòng)時(shí)獲取當(dāng)前位置并且繪制直線,結(jié)束時(shí)將重點(diǎn)設(shè)置為下一次的起點(diǎn)。
點(diǎn)擊設(shè)置顏色按鈕可以設(shè)置畫筆的顏色,添加dialog對話框來提供可選擇的顏色。用戶選擇之后將修改paint的color屬性。
點(diǎn)擊設(shè)置寬度按鈕可以設(shè)置畫筆的粗細(xì),添加dialog對話框來提供可選擇的寬度。用戶選擇之后修改paint的width屬性。
由于底色是白色,所以橡皮擦實(shí)際上就是白色的畫筆。
保存圖片的時(shí)候,可以先將圖片保存到Bundle里,再將Bundle放到intent對象里。返回上一級頁面。
四、實(shí)驗(yàn)總結(jié)
4.1 運(yùn)行結(jié)果展示
打開應(yīng)用后首先進(jìn)入首頁
點(diǎn)擊右下角圖標(biāo)后可以進(jìn)行新增記事,進(jìn)入編輯頁面。
點(diǎn)擊下面的圖標(biāo)可以在記事本內(nèi)添加相關(guān)的內(nèi)容。
首先在記事本內(nèi)添加文字,直接將光標(biāo)移動(dòng)至相關(guān)位置輸入。
點(diǎn)擊右下角的手寫可以跳轉(zhuǎn)到手寫頁面,可以選擇橡皮擦、畫筆顏色和畫筆寬度。
選擇橡皮擦后,進(jìn)行涂抹。點(diǎn)擊確定保存到手機(jī)存儲,并且在編輯頁面上展現(xiàn)出來。
點(diǎn)擊照相后調(diào)用系統(tǒng)相機(jī)
點(diǎn)擊完成后返回編輯頁面,并且在編輯頁面可以看到圖片。點(diǎn)擊錄音進(jìn)入錄音頁面。
點(diǎn)擊下面的錄音按鈕可以進(jìn)行錄音,進(jìn)度條和波形圖案動(dòng)態(tài)變化。錄音結(jié)束后點(diǎn)擊暫停按鈕,可以點(diǎn)擊麥克風(fēng)進(jìn)行試聽。
點(diǎn)擊確定后保存到本地,并且在原先的頁面中展示錄音圖標(biāo)。點(diǎn)擊右上角的對號后返回主頁面,并且將內(nèi)容更新到頁面上。
長按該頁面出現(xiàn)選擇框,可以選擇修改查看或刪除。選擇查看后進(jìn)入編輯/查看頁面。
點(diǎn)擊錄音小圖標(biāo)可以播放對應(yīng)錄音。點(diǎn)擊圖片可以查看大圖。
修改題目返回主頁面。題目和時(shí)間都變了。
選擇刪除后,該頁面自動(dòng)刷新。
編輯頁面選擇錄像按鈕后,進(jìn)入錄像頁面。點(diǎn)擊錄像后調(diào)用系統(tǒng)的錄像機(jī)。
錄像后可以查看。錄像保存在了本地。文章來源:http://www.zghlxwxcb.cn/news/detail-411638.html
拍照后圖片也保存在了圖庫。文章來源地址http://www.zghlxwxcb.cn/news/detail-411638.html
到了這里,關(guān)于【安卓開發(fā)】開源Notepad記事本APP項(xiàng)目(完整代碼+說明文檔)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!