![android小畫(huà)家畫(huà)畫(huà)軟件畢業(yè)設(shè)計(jì)_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/4/2dcec3e5-0608-44e4-97a5-8f79cf4f6935/2dcec3e5-0608-44e4-97a5-8f79cf4f69351.gif)
![android小畫(huà)家畫(huà)畫(huà)軟件畢業(yè)設(shè)計(jì)_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/4/2dcec3e5-0608-44e4-97a5-8f79cf4f6935/2dcec3e5-0608-44e4-97a5-8f79cf4f69352.gif)
![android小畫(huà)家畫(huà)畫(huà)軟件畢業(yè)設(shè)計(jì)_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/4/2dcec3e5-0608-44e4-97a5-8f79cf4f6935/2dcec3e5-0608-44e4-97a5-8f79cf4f69353.gif)
![android小畫(huà)家畫(huà)畫(huà)軟件畢業(yè)設(shè)計(jì)_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/4/2dcec3e5-0608-44e4-97a5-8f79cf4f6935/2dcec3e5-0608-44e4-97a5-8f79cf4f69354.gif)
![android小畫(huà)家畫(huà)畫(huà)軟件畢業(yè)設(shè)計(jì)_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/4/2dcec3e5-0608-44e4-97a5-8f79cf4f6935/2dcec3e5-0608-44e4-97a5-8f79cf4f69355.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、畢業(yè)設(shè)計(jì)設(shè)計(jì)題目: 系 別: 專(zhuān)業(yè)班級(jí): 指導(dǎo)老師: 學(xué)生姓名: 2013年5月18日- 33 -四川工商職業(yè)技術(shù)學(xué)院摘要:在21世紀(jì)的今天,手機(jī)幾乎是每個(gè)人的必備品,特別是在高校的學(xué)生,不管是吃飯、睡覺(jué)、還是上課,手機(jī)總是不離手。而且手機(jī)更新?lián)Q代更是日新月異,然后在現(xiàn)在的手機(jī)市場(chǎng)中android系統(tǒng)的智能機(jī)成為主流。我們這款畫(huà)畫(huà)小軟件正是在android系統(tǒng)的平臺(tái)上進(jìn)行運(yùn)行。在日常生活中,我們畫(huà)畫(huà)只能在紙上的時(shí)代已經(jīng)過(guò)去,這款android小畫(huà)家畫(huà)畫(huà)軟件,可以進(jìn)行簡(jiǎn)單的簡(jiǎn)筆畫(huà)操作、上色。既節(jié)約了增加了我們平時(shí)的樂(lè)趣,也節(jié)約了資源。該軟件具有改變畫(huà)圖的形狀、改變畫(huà)筆的顏色、改變畫(huà)刷的寬度、改變
2、畫(huà)畫(huà)的風(fēng)格、以及保存、清除等功能。經(jīng)過(guò)測(cè)試,這是一款能為我們生活增加樂(lè)趣的軟件。關(guān)鍵字:手機(jī);android;畫(huà)畫(huà)軟件目錄第一章 引言- 1 -1.1發(fā)展情況- 1 -1.2研究現(xiàn)狀- 1 -1.3研究前景展望- 1 -1.4選題的目的及意義- 2 -第二章 系統(tǒng)可行性分析- 3 -2.1經(jīng)濟(jì)可行性分析- 3 -2.2操作可行性分析- 3 -2.3技術(shù)可行性分析- 3 -2.3.1 eclipse概述- 3 -2.3.2 adt 概述- 4 -2.3.3 android sdk概述- 4 -2.3.4 java概述- 5 -第三章 需求分析- 6 -3.1軟件功能描述- 6 -3.2系統(tǒng)功能分
3、析- 7 -3.3軟件需求分析- 9 -3.4軟件概念結(jié)構(gòu)設(shè)計(jì)- 9 -第四章 軟件詳細(xì)設(shè)計(jì)- 12 -4.1軟件設(shè)計(jì)原理- 12 -4.2軟件模塊設(shè)計(jì)- 12 -第五章 軟件測(cè)試- 30 -總結(jié)- 31 -參考文獻(xiàn)- 32 -致謝- 33 -四川工商職業(yè)技術(shù)學(xué)院第一章 引言1.1發(fā)展情況 在現(xiàn)在這個(gè)手機(jī)普及的時(shí)代,各種手機(jī)軟件也是層出不窮,尤其是在這兩年的飛速發(fā)展,android軟件可以是說(shuō)席卷各大手機(jī)軟件網(wǎng)站,為android軟件開(kāi)發(fā)者既帶來(lái)了收入的回報(bào),也提出了技術(shù)的挑戰(zhàn)。android系統(tǒng)這個(gè)平臺(tái)以成為智能手機(jī)系統(tǒng)的核心,也是it技術(shù)行業(yè)、智能手機(jī)制造行業(yè)高度重視的。隨著android
4、系統(tǒng)的不斷更新,現(xiàn)在功能各方面已經(jīng)非常強(qiáng)大,這不僅是一臺(tái)手機(jī)這么簡(jiǎn)單,而是一個(gè)移動(dòng)終端。各種軟件都有幾乎都有android系統(tǒng)的版本。同時(shí)用戶現(xiàn)在不僅要求手機(jī)有傳統(tǒng)手機(jī)的功能,現(xiàn)在必須更加具有娛樂(lè)性以及休閑性。抓住現(xiàn)在用戶的這個(gè)心理狀態(tài),于是android平臺(tái)上運(yùn)行的小畫(huà)家畫(huà)畫(huà)軟件就運(yùn)營(yíng)而生了。1.2研究現(xiàn)狀就目前的android系統(tǒng)智能手機(jī)在市場(chǎng)的占有率來(lái)看,對(duì)android系統(tǒng)手機(jī)軟件的開(kāi)發(fā)具有非常廣闊的前景。雖然在it行業(yè)中都處于一個(gè)飽和的狀態(tài),但是在android系統(tǒng)手機(jī)軟件開(kāi)發(fā)這一方面又處于緊缺的狀態(tài),因?yàn)楝F(xiàn)在的手機(jī)用戶拿起手機(jī)不僅僅是只用來(lái)打打電話,發(fā)發(fā)短信這么簡(jiǎn)單,用戶更加追求的
5、是手機(jī)的娛樂(lè)性和休閑性。說(shuō)的更加簡(jiǎn)單明了一點(diǎn)就是,用戶在無(wú)聊的時(shí)候可以用手機(jī)來(lái)消遣時(shí)間。android系統(tǒng)自2009年2月發(fā)布的android1.1開(kāi)始已經(jīng)有4年的發(fā)展歷史。然而在這短短四年時(shí)間就可以成為智能手機(jī)市場(chǎng)的領(lǐng)頭羊,那么對(duì)于我們開(kāi)發(fā)android系統(tǒng)手機(jī)的軟件,也是同樣具有廣闊的市場(chǎng)。1.3研究前景展望隨著android系統(tǒng)智能手機(jī)的誕生,android系統(tǒng)打破了前些年智能手機(jī)的壟斷的傳統(tǒng)市場(chǎng)。同時(shí)android系統(tǒng)的手機(jī)軟件占據(jù)的手機(jī)軟件市場(chǎng)的比例越來(lái)越大,那么我們開(kāi)發(fā)的畫(huà)畫(huà)涂鴉軟件是基于android系統(tǒng)的,可以說(shuō)是具有廣闊的發(fā)展前景。而且現(xiàn)在用戶對(duì)手機(jī)軟件是否具有娛樂(lè)性有非常強(qiáng)
6、的選擇性,用戶對(duì)于空閑時(shí)間的消遣,還有即時(shí)聊天需要發(fā)送一個(gè)手繪涂鴉圖片的需要,那么對(duì)我們這款軟件的選擇是非常有用的。對(duì)于小畫(huà)家手機(jī)軟件具有一下優(yōu)點(diǎn):(1)喜愛(ài)畫(huà)畫(huà)的用于,無(wú)論是在車(chē)上,還是站臺(tái)等車(chē),都可以隨時(shí)隨地的進(jìn)行簡(jiǎn)筆畫(huà)畫(huà)畫(huà)的操作。(2)可以將畫(huà)好的圖片保存通過(guò)即時(shí)聊天工具發(fā)給好朋友分享自己的作品。(3)在手機(jī)上畫(huà)可以節(jié)約資源,在環(huán)保的角度,起到節(jié)能減排的效果。1.4選題的目的及意義為了鞏固在大學(xué)三年所學(xué)的知識(shí),達(dá)到學(xué)以并用的目的,作為四川工商職業(yè)技術(shù)學(xué)院信息工程系軟件班大三的畢業(yè)生,希望在離開(kāi)自己母校的時(shí)候能夠把自己所學(xué)的知識(shí)能夠做一次全面的鞏固和提高,我的選題意義如下:隨著androi
7、d系統(tǒng)的不斷升級(jí),android系統(tǒng)智能手機(jī)的各種軟件對(duì)各方面的影響越來(lái)越大,并且android系統(tǒng)成為以后移動(dòng)智能客戶終端的可能性同時(shí)也越來(lái)越大,那么未來(lái)android系統(tǒng)主導(dǎo)智能手機(jī)市場(chǎng)也是必然的發(fā)展趨勢(shì)。那么我們開(kāi)發(fā)的這款畫(huà)畫(huà)小軟件也是順應(yīng)時(shí)代發(fā)展的潮流,在傳統(tǒng)的按鍵手機(jī),我們不能做出這個(gè)靈活的畫(huà)畫(huà)涂鴉軟件,現(xiàn)在我們借助android系統(tǒng)這個(gè)平臺(tái)來(lái)實(shí)現(xiàn)了這一功能。這樣不僅提高圖片的趣味性;建立生動(dòng)有趣的圖片處理平臺(tái),而且還提高手機(jī)的利用率。何樂(lè)而不為呢。第二章 系統(tǒng)可行性分析可行性研究的目的就是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否能夠解決。可行性研究的目的不是解決問(wèn)題,而是確定問(wèn)題
8、是否值得去解決??尚行匝芯烤褪沁M(jìn)行一次大大壓縮簡(jiǎn)化了的系統(tǒng)分析和軟件設(shè)計(jì)過(guò)程,也就是在較高層上以抽象的方式進(jìn)行系統(tǒng)分析和軟件設(shè)計(jì)過(guò)程。2.1經(jīng)濟(jì)可行性分析 在android系統(tǒng)各種手機(jī)軟件頻頻被開(kāi)發(fā)出來(lái)的今天,那些軟件開(kāi)放團(tuán)隊(duì)如何進(jìn)行軟件的開(kāi)發(fā),以及開(kāi)發(fā)出來(lái)的軟件有什么特色來(lái)吸引用戶,是越來(lái)越重要的問(wèn)題。而我們這個(gè)小軟件內(nèi)容簡(jiǎn)單,開(kāi)發(fā)周期短,投資小。投入運(yùn)營(yíng)后,提供免費(fèi)下載,然后在軟件中植入廣告成分,來(lái)獲取利潤(rùn)。所以該軟件為開(kāi)發(fā)團(tuán)隊(duì)所帶來(lái)的經(jīng)濟(jì)效益會(huì)遠(yuǎn)遠(yuǎn)高于前期投入的資金。2.2操作可行性分析本軟件的開(kāi)發(fā)工具是eclipse-sdk-4.2.1版本,eclipse內(nèi)裝插件adt-21.0.0版
9、本以及android sdk 2.3.3。前端開(kāi)發(fā)工具是java。這樣的eclipse就是一套完整的開(kāi)發(fā)工具,用于生成后綴為apk的應(yīng)用程序。之后將生成的apk應(yīng)用程序安裝到手機(jī)就可以使用了。2.3技術(shù)可行性分析2.3.1 eclipse概述eclipse 是一個(gè)開(kāi)放源代碼的、基于java的可擴(kuò)展開(kāi)發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過(guò)插件組件構(gòu)建開(kāi)發(fā)環(huán)境。幸運(yùn)的是,eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括java開(kāi)發(fā)工具(java development kit,jdk)。我們經(jīng)常將 eclipse 當(dāng)作 java 集成開(kāi)發(fā)環(huán)境(ide)來(lái)使用,但 eclipse 的目
10、標(biāo)卻不僅限于此。eclipse 還包括插件開(kāi)發(fā)環(huán)境(plug-in development environment,pde),這個(gè)組件主要針對(duì)希望擴(kuò)展 eclipse 的軟件開(kāi)發(fā)人員,因?yàn)樗试S他們構(gòu)建與 eclipse 環(huán)境無(wú)縫集成的工具。由于 eclipse 中的每樣?xùn)|西都是插件,對(duì)于給 eclipse 提供插件,以及給軟件開(kāi)發(fā)人員提供一致和統(tǒng)一的集成開(kāi)發(fā)環(huán)境而言,所有工具開(kāi)發(fā)人員都具有同等的發(fā)揮場(chǎng)所。2.3.2 adt 概述 android開(kāi)發(fā)工具(adt),作為eclipse工具插件,讓其支持android快速入門(mén)和便捷開(kāi)發(fā),可通過(guò)eclipse啟動(dòng)菜單(啟動(dòng)eclipse后
11、,選擇help->install new software)安裝。adt開(kāi)發(fā)工具,包括android dalvik debug moniter server(android ddms)和android development tools(adt),還有hierarchy viewer和traceview兩個(gè)查看器,看名稱(chēng)就知道功能了。ddms可以提供調(diào)試設(shè)備時(shí)為設(shè)備截屏,查看線程及內(nèi)存信息、logcat、廣播信息、模擬呼叫、接收短消息、文件查看器等功能(該功能在安裝完adt之后,點(diǎn)擊eclipse工具欄右上角的那個(gè)帶箭頭的小窗口圖標(biāo)彈出菜單中打開(kāi))。 android developmen
12、t tools(adt)工具應(yīng)該是為eclipse支持android項(xiàng)目快速編程開(kāi)發(fā)和調(diào)試插件而已。2.3.3 android sdk概述sdk:(software development kit)軟件開(kāi)發(fā)工具包。被軟件開(kāi)發(fā)工程師用于為特定的軟件包、軟件框架、硬件平臺(tái)、操作系統(tǒng)等建立應(yīng)用軟件的開(kāi)發(fā)工具的集合。因此,android sdk 指的是android專(zhuān)屬的軟件開(kāi)發(fā)工具包。下載好android sdk后,開(kāi)始安裝,android sdk采用了java語(yǔ)言,所以需要先安裝jdk 5.0及以上版本。直接下載jdk安裝文件安裝更為方便。android sdk不用直接安裝,下載后,直接解壓即可,
13、 將下載后的sdk的壓縮包解壓到適當(dāng)?shù)奈恢?,就這么簡(jiǎn)單;sdk安裝ok。2.3.4 java概述java是一種可以撰寫(xiě)跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,是由sun microsystems公司于1995年5月推出的java程序設(shè)計(jì)語(yǔ)言和java平臺(tái)(即javase, javaee, javame)的總稱(chēng)。java 技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于個(gè)人pc、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開(kāi)發(fā)者專(zhuān)業(yè)社群。在全球云計(jì)算和移動(dòng)互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,java更具備了顯著優(yōu)勢(shì)和廣闊前景。第三章 需求分析本設(shè)計(jì)為android系統(tǒng)手
14、機(jī)上的一個(gè)畫(huà)畫(huà)小軟件,該軟件主要是在eclipse開(kāi)發(fā)工具上用java語(yǔ)言編寫(xiě)的一個(gè)結(jié)果。eclipse 是一個(gè)開(kāi)放源代碼的、基于java的可擴(kuò)展開(kāi)發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過(guò)插件組件構(gòu)建開(kāi)發(fā)環(huán)境。而java語(yǔ)言具有卓越的通用性、高效性、平臺(tái)移植性和安全性。eclipse編輯器引入了編輯環(huán)境方面的一些增強(qiáng)功能,諸如單詞補(bǔ)齊,增量搜索,代碼凸顯,縮進(jìn)文本,標(biāo)記行號(hào),彩色打印,和快捷方式。eclipse編輯器還提供了許多為特定語(yǔ)言設(shè)計(jì)的功能,比如在你輸入原型和函數(shù)調(diào)用的時(shí)候它能夠自動(dòng)完成這些字符串的輸入。生成的應(yīng)用程序安裝到手機(jī)后,直接點(diǎn)擊打開(kāi),操作簡(jiǎn)單明了,軟件具有形
15、狀的選擇、畫(huà)筆寬度的調(diào)整、畫(huà)筆顏色的改變、繪畫(huà)風(fēng)格的改變、整屏清除以及保存等功能。3.1軟件功能描述小畫(huà)家畫(huà)畫(huà)軟件主要是提供給使用android系統(tǒng)智能手機(jī)的用戶,增加業(yè)余時(shí)間的趣味性。本軟件主要有簡(jiǎn)筆畫(huà)畫(huà)、上色、保存等功能。(1) 形狀選擇,打開(kāi)軟件,選擇菜單鍵,就會(huì)彈出菜單里面的功能,選擇形狀功能就可以自由的選擇需要的形狀,形狀有軌跡線、直線、矩形、橢圓形、圓形、點(diǎn)、還有橡皮擦等不同的形狀。(2) 清除,打開(kāi)軟件,選擇菜單鍵,就會(huì)彈出菜單里面的功能,清除功能就是將所繪制的整張畫(huà)布全部清除。(3) 保存,打開(kāi)軟件,選擇菜單鍵,就會(huì)彈出菜單里面的功能,如果繪畫(huà)好一張滿意的畫(huà),選擇保存就可以將圖
16、保存在手機(jī)里面,以供自己以后欣賞或者與朋友分享。(4) 設(shè)置,打開(kāi)軟件,選擇菜單鍵,就會(huì)彈出菜單里面的功能,選擇設(shè)置,就可以進(jìn)入到設(shè)置畫(huà)面,設(shè)置里面有畫(huà)刷寬度的調(diào)節(jié)、畫(huà)筆顏色的選擇、畫(huà)畫(huà)風(fēng)格的選擇、是否是全屏模式、目前所使用的版本、以及可以看到最后調(diào)試的時(shí)間與快捷鍵和對(duì)開(kāi)發(fā)者的建議。3.2系統(tǒng)功能分析根據(jù)軟件的使用情況和面向?qū)ο?,本軟件具備一下功能模塊以及操作方式:功能功能類(lèi)別子功能用戶管理模塊setdrawing設(shè)置形狀clearcanvas清屏savetosdcard保存settingsactivity設(shè)置顏色管理模塊(color)colorpickerdialog顏色選擇畫(huà)刷大小管理模塊
17、(size)brush設(shè)置畫(huà)刷大小菜單用戶模塊功能描述用戶進(jìn)入軟件并選擇操作操作序列1,點(diǎn)擊“形狀”選擇要形狀,默認(rèn)軌跡線。2,點(diǎn)擊“清除”抹掉整張畫(huà)布的所有線條。3,點(diǎn)擊“保存”保存當(dāng)前的所畫(huà)的畫(huà)。4,點(diǎn)擊“設(shè)置”進(jìn)入更多的設(shè)置畫(huà)面。形狀形狀管理模塊功能描述用戶選擇圖形形狀操作序列1, 點(diǎn)擊menu按鈕,屏幕下方顯示菜單。2, 點(diǎn)擊“形狀”進(jìn)入形狀設(shè)置。3, 選擇需要的形狀就可以了。清除清除管理模塊功能描述用戶需要清除整個(gè)畫(huà)布操作序列1, 點(diǎn)擊menu按鈕,屏幕下方顯示菜單。2, 點(diǎn)擊“清除”就把整張畫(huà)布清除了。保存保存管理模塊功能描述用戶需要保存所畫(huà)的畫(huà)操作序列3, 點(diǎn)擊menu按鈕,屏幕
18、下方顯示菜單。4, 點(diǎn)擊“保存”就將所畫(huà)的畫(huà)保存下來(lái)了。顏色顏色管理模塊功能描述用戶選擇畫(huà)刷顏色操作序列1, 點(diǎn)擊menu按鈕,屏幕下方顯示菜單。2, 點(diǎn)擊“設(shè)置”進(jìn)入設(shè)置畫(huà)面。3, 點(diǎn)擊“顏色”就可以選擇自己喜歡的顏色了。畫(huà)刷大小畫(huà)刷大小管理模塊功能描述用戶選擇畫(huà)刷的大小操作序列1, 點(diǎn)擊menu按鈕,屏幕下方顯示菜單。2, 點(diǎn)擊“設(shè)置”進(jìn)入設(shè)置畫(huà)面。3, 點(diǎn)擊“畫(huà)刷寬度”就可以設(shè)置合適的畫(huà)刷寬度了。風(fēng)格畫(huà)畫(huà)風(fēng)格管理模塊功能描述用戶選擇畫(huà)畫(huà)的風(fēng)格操作序列1, 點(diǎn)擊menu按鈕,屏幕下方顯示菜單。2, 點(diǎn)擊“設(shè)置”進(jìn)入設(shè)置畫(huà)面。3, 點(diǎn)擊“風(fēng)格”就可以設(shè)置畫(huà)畫(huà)的風(fēng)格了。模式畫(huà)圖模式管理模塊功能
19、描述用戶選擇畫(huà)圖的模式操作序列1, 點(diǎn)擊menu按鈕,屏幕下方顯示菜單。2, 點(diǎn)擊“設(shè)置”進(jìn)入設(shè)置畫(huà)面。3, 點(diǎn)擊“全屏模式”就可以設(shè)置畫(huà)圖的模式了。3.3軟件需求分析隨著社會(huì)的發(fā)展,時(shí)代的進(jìn)步,人們對(duì)生活品質(zhì)的不斷提高,對(duì)生活的享受心理也越來(lái)越強(qiáng),越來(lái)越注重休閑娛樂(lè)。只有抓住現(xiàn)在人們的心理需要才能在現(xiàn)在有得一席之地。同樣在手機(jī)軟件方面也是一樣的,現(xiàn)在的大多數(shù)人的手機(jī)里面占據(jù)一大部分內(nèi)存的都是休閑娛樂(lè)的游戲,就是在無(wú)聊的時(shí)候打發(fā)時(shí)間的。而我們這款android小畫(huà)家畫(huà)圖軟件就是提供給那些愛(ài)畫(huà)簡(jiǎn)筆畫(huà)的畫(huà)圖愛(ài)好者,所以,既然現(xiàn)在有這個(gè)需求,我們就可以滿足用戶的這個(gè)需要,開(kāi)發(fā)這么一款畫(huà)圖的軟件。3.
20、4軟件概念結(jié)構(gòu)設(shè)計(jì)這一設(shè)計(jì)階段是在需求分析的基礎(chǔ)上而進(jìn)行的,設(shè)計(jì)出能夠滿足用戶需求的各種實(shí)體,以及它們之間的關(guān)系,為后面的邏輯設(shè)計(jì)打下基礎(chǔ)。概念結(jié)構(gòu)的主要特點(diǎn)是:(1) 能真實(shí)、充分地反映現(xiàn)實(shí)世界,包括事物和事物之間的聯(lián)系,能滿足用戶對(duì)軟件功能的要求。(2) 易于理解,從而可以用它和不熟悉使用手機(jī)的用戶交換意見(jiàn),用戶的積極參與是軟件開(kāi)發(fā)設(shè)計(jì)成功的關(guān)鍵。(3) 易于更改,當(dāng)應(yīng)用環(huán)境和應(yīng)用要求改變時(shí),容易對(duì)概念模型修改和擴(kuò)充。軟件開(kāi)發(fā)在小畫(huà)家軟件開(kāi)發(fā)中存在系統(tǒng)用例、開(kāi)發(fā)人員與用戶、數(shù)據(jù)流程處理、數(shù)據(jù)表述等幾個(gè)對(duì)象的關(guān)系,具體描述如下面各圖所示。用戶管理開(kāi)發(fā)維護(hù)后臺(tái)數(shù)據(jù)維護(hù)軟件更新開(kāi)發(fā)人員系統(tǒng)用例圖
21、用戶小畫(huà)家軟件開(kāi)發(fā)人員用戶信息軟件下載軟件信息用戶情況軟件升級(jí)建議反饋總體流程圖軟件管理用戶軟件信息軟件信息軟件下載條件 軟件情況開(kāi)發(fā)人員下載信息軟件信息軟件信息下載條件軟件信息表用戶下載信息表用戶下載情況用戶信息下載量信息軟件信息下載信息下載量信息下載管理用戶管理下載量信息用戶信息開(kāi)發(fā)人員用戶信息 用戶信息下載量信息用戶管理表數(shù)據(jù)流圖處理圖下載情況軟件卸載信息表軟件信息表用戶信息表開(kāi)發(fā)團(tuán)信息表下載信息表用戶排行表數(shù)據(jù)表述e-r圖 第四章 軟件詳細(xì)設(shè)計(jì)4.1軟件設(shè)計(jì)原理本軟件基于android系統(tǒng)智能手機(jī),在android系統(tǒng)設(shè)備上運(yùn)行,就像打開(kāi)手機(jī)播放器一樣簡(jiǎn)單打開(kāi)軟件就可以操作。它是隨著a
22、ndroid系統(tǒng)手機(jī)的興起,借助android系統(tǒng)平臺(tái)開(kāi)發(fā)的一個(gè)軟件。主要是利用不斷成熟的android系統(tǒng),結(jié)合java語(yǔ)言與xml而產(chǎn)生的軟件。java 語(yǔ)言具有卓越的通用性、高效性、平臺(tái)移植性和安全性,而可擴(kuò)展標(biāo)記語(yǔ)言xml是用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語(yǔ)言,可以用來(lái)標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類(lèi)型,是一種允許用戶對(duì)自己的標(biāo)記語(yǔ)言進(jìn)行定義的源語(yǔ)言。這樣開(kāi)發(fā)的軟件不僅在界面上比較美觀,而且可以在android系統(tǒng)平臺(tái)上穩(wěn)定運(yùn)行。4.2軟件模塊設(shè)計(jì)打開(kāi)軟件即可進(jìn)入到畫(huà)畫(huà)操作界面,也可以選擇各種各樣的功能,利用目前有的功能可以隨心所欲的畫(huà)出想要的簡(jiǎn)筆畫(huà),在選擇各種各樣的功能的時(shí)候也有界面的跳轉(zhuǎn)彈
23、出和菜單功能的選擇。因?yàn)楝F(xiàn)在是測(cè)試版本,不存在與互聯(lián)網(wǎng)連接的情況,這樣對(duì)用戶的私人隱私也具有絕對(duì)的安全保密,因?yàn)橹皇且豢町?huà)圖的軟件,所以我們不會(huì)訪問(wèn)用戶的手機(jī)聯(lián)系人、短信、以及地理位置信息,同時(shí)也不需要獲得手機(jī)的任何權(quán)限,只是能夠運(yùn)行和使用就可以了,這樣給開(kāi)發(fā)團(tuán)隊(duì)的建議也只能發(fā)在開(kāi)發(fā)團(tuán)隊(duì)的郵箱中。下面是軟件各種界面的截圖以及部分代碼。打開(kāi)軟件,就如同打開(kāi)音樂(lè)播放器一樣簡(jiǎn)單,打開(kāi)之后,就進(jìn)入軟件的主界面,這就是一張畫(huà)布,可以在上面隨意畫(huà)自己喜歡的線條。這是軟件最基本,也是最重要的部分,在軟件中首先要?jiǎng)?chuàng)建這樣一個(gè)activity,才能展開(kāi)其他的功能。首先要在手機(jī)界面創(chuàng)建一個(gè)這樣的畫(huà)布,這是我們最重
24、要的起步,創(chuàng)建一個(gè)界面activity,才能進(jìn)行下一步的操作,用public公有類(lèi),因?yàn)橹饕侵鹘缑鎍ctivity涉及的其他很多方法的訪問(wèn),設(shè)置各種功能方法的類(lèi)型、初始值。就如下所示,/* *主要視圖類(lèi) */public class paintpad extends viewfloat tempx, tempy;private bitmap bitmap = null;private canvas paper = null;boolean ismoving = false;drawing drawing = null;int bgcolor;context context;然后添加不同的功能
25、以及設(shè)置用setdrawing方法,設(shè)置繪畫(huà)背景色的狀態(tài)為初始默認(rèn)狀態(tài)、繪畫(huà)形狀的當(dāng)前狀態(tài)參數(shù)為默認(rèn)空、屏幕上此時(shí)的信息為默認(rèn)初始狀態(tài)。/* *設(shè)置繪畫(huà)形狀 * param drawing * 當(dāng)前繪畫(huà)形狀參數(shù) */public void setdrawing(drawing drawing)this.drawing = drawing;public paintpad(context context)super(context);this.context = context;/獲取屏幕上的信息screeninfo screeninfo = new screeninfo(activity) co
26、ntext);/*創(chuàng)建和屏幕大小的位圖 */bitmap = bitmap.createbitmap(screeninfo.getwidthpixels(),screeninfo.getheightpixels(), bitmap.config.argb_8888);paper = new canvas(this.bitmap);/設(shè)置背景顏色paper.drawcolor(getresources().getcolor(r.color.color_default_bg);this.ismoving = false;手指在屏幕上觸動(dòng)的時(shí)候,用private 私人方法fingermove,會(huì)記錄
27、下所運(yùn)動(dòng)的軌跡或者方法所規(guī)定的形狀,處理手指的動(dòng)作,這是讓手指在畫(huà)布activity的界面處理手指所留下的坐標(biāo),將所有坐標(biāo)的點(diǎn)組成的線就是所畫(huà)出來(lái)的圖形。private void redraw()invalidate();/* * 處理手指的動(dòng)作。 * param x * x坐標(biāo) * param y * y坐標(biāo) */private void fingerup(float x, float y)this.tempx = 0;this.tempy = 0;drawing.fingerup(x, y, paper);this.ismoving = false;/* * 處理手指的動(dòng)作 * param
28、 x * param y */private void fingermove(float x, float y)this.tempx = x;this.tempy = y;this.ismoving = true;drawing.fingermove(x, y, paper);/* * 處理手指的動(dòng)作 * param x * param y */private void fingerdown(float x, float y)this.ismoving = false;drawing.fingerdown(x, y, paper);如果處理好一張圖,需要保存,調(diào)用公用public方法saveb
29、itmap,對(duì)畫(huà)好的圖進(jìn)行保存,這個(gè)時(shí)候,軟件會(huì)檢測(cè)是否有保存的介質(zhì)存在,如果不存在,就保存不了,有可能還會(huì)引起軟件的崩潰;如果檢測(cè)到存在保存介質(zhì),編輯圖片名字進(jìn)行保存就可以,如果沒(méi)有名字,軟件默認(rèn)給一個(gè)名字,進(jìn)行保存。 /* *檢查sd卡是否可用 */public void savebitmap()string state = environment.getexternalstoragestate();if (environment.media_mounted.equals(state)savetosdcard();else if (environment.media_mounted_rea
30、d_only.equals(state)toast.maketext(this.context,getresources().getstring(r.string.tip_sdcard_is_read_only),toast.length_long).show();elsetoast.maketext(this.context,getresources().getstring(r.string.tip_sdcard_is_not_available),toast.length_long).show();public void changebgcolor(int color)this.paper
31、.drawcolor(color);this.redraw();當(dāng)檢查到儲(chǔ)存介質(zhì)是存在的,即私人的private 方法savetosdcard來(lái)執(zhí)行,在sd卡中創(chuàng)建屬于軟件的保存文件夾,訪問(wèn)路徑由“/”符號(hào)來(lái)分開(kāi),保存時(shí)間為系統(tǒng)時(shí)間,保存的圖片格式為".png"格式,最后就是將圖片進(jìn)行儲(chǔ)存。/* * 保存位圖在sd卡上 */private void savetosdcard()file sdcard_path = environment.getexternalstoragedirectory();string myfloder = getresources().getstr
32、ing(r.string.folder_name_in_sdcard);file paintpad = new file(sdcard_path + "/" + myfloder + "/");tryif (!paintpad.exists()paintpad.mkdirs();catch (exception e)e.printstacktrace();string timestamp = (dateformat.format("yyyy.mm.dd.hh.mm.ss",new java.util.date().tostring()
33、;string suffixname = ".png"string fullpath = ""fullpath = sdcard_path + "/" + myfloder + "/" + timestamp + suffixname;trytoast.maketext(this.context,getresources().getstring(r.string.tip_save_to) + fullpath,toast.length_long).show();press(bitmap.compressformat
34、.png, 100,new fileoutputstream(fullpath);catch (filenotfoundexception e)toast.maketext(this.context,getresources().getstring(r.string.tip_sava_failed)+ fullpath, toast.length_long).show();e.printstacktrace();利用軟件就可以畫(huà)出你想要的簡(jiǎn)筆畫(huà),比如像菠蘿一樣的水果,哆啦a夢(mèng)一樣的卡通人物,還有很多很多,只要你想的到的都可以利用它畫(huà)出來(lái)。創(chuàng)建的界面如圖1所示,畫(huà)出的菠蘿如圖2所示,畫(huà)出的哆啦a
35、夢(mèng)如圖所示。圖1,打開(kāi)軟件圖2,用畫(huà)筆畫(huà)菠蘿圖3,用畫(huà)筆畫(huà)哆啦a夢(mèng)只有畫(huà)畫(huà)遠(yuǎn)遠(yuǎn)不是我們要的要的功能,當(dāng)然還有幾乎所有軟件都具備的一個(gè)功能,設(shè)置。菜單中含有形狀、清除、保存、設(shè)置。進(jìn)入設(shè)置,有很多關(guān)于畫(huà)畫(huà)的各種功能。畫(huà)筆的寬度pen_width為默認(rèn)初始寬度,畫(huà)筆的顏色pen_color為默認(rèn)顏色,畫(huà)布的顏色為空即是白色,畫(huà)畫(huà)的風(fēng)格為初始默認(rèn)狀態(tài),以下是進(jìn)入設(shè)置的部分代碼。圖4是菜單現(xiàn)實(shí)設(shè)置的界面。圖5是進(jìn)入設(shè)置之后的界面,有畫(huà)刷寬度、顏色等功能的選擇。import java.text.simpledateformat;import java.util.zip.zipentry;import j
36、ava.util.zip.zipfile;import org.vhow.paintpad.r;import org.vhow.paintpad.helper.colorpickerdialog;import org.vhow.paintpad.tools.brush;import android.content.dialoginterface;import android.content.sharedpreferences;import android.content.pm.applicationinfo;import android.content.pm.packagemanager.na
37、menotfoundexception;import android.os.bundle;import android.preference.checkboxpreference;import android.preference.preference;import android.preference.preference.onpreferenceclicklistener;import android.preference.preferenceactivity;/* *當(dāng)用戶選擇設(shè)置按鈕,就跳轉(zhuǎn)到這個(gè)activity。 *當(dāng)用戶點(diǎn)擊的時(shí)候、實(shí)現(xiàn)onpreferenceclicklisten
38、er接口。 *優(yōu)先調(diào)用onpreferenceclick()。 */public class settingsactivity extends preferenceactivity implementsonpreferenceclicklistener, colorpickerdialog.oncolorchangedlistenersharedpreferences prefs = null;preference pen_width = null;preference pen_color = null;preference canvas_bg_color = null;string pen_
39、width_key;string pen_color_key;checkboxpreference pen_style = null;preference versionname;preference lastbuildtime;overrideprotected void oncreate(bundle savedinstancestate)super.oncreate(savedinstancestate);/* *xml對(duì)這個(gè)activity的虛擬設(shè)置 */addpreferencesfromresource(r.xml.settings);pen_width_key = getreso
40、urces().getstring(r.string.pen_width_key);pen_color_key = getresources().getstring(r.string.pen_color_key);/* *找到要處理的對(duì)象。 */pen_width = (preference) findpreference(getresources().getstring(r.string.pen_width_key);pen_color = (preference) findpreference(getstring(r.string.pen_color_key);versionname =
41、(preference) findpreference(getstring(r.string.setting_about_version_key);lastbuildtime = (preference) findpreference(getstring(r.string.setting_about_build_key);versionname.setsummary(getversionname();lastbuildtime.setsummary(getlastbuilttime();/* *注冊(cè)監(jiān)聽(tīng)器。包含畫(huà)刷寬度,畫(huà)刷顏色。 */pen_width.setonpreferenceclic
42、klistener(this);pen_color.setonpreferenceclicklistener(this);private string getlastbuilttime()string lastbuilttimestring = "unknown"tryapplicationinfo ai = getpackagemanager().getapplicationinfo(getpackagename(), 0);zipfile zf = new zipfile(ai.sourcedir);zipentry ze = zf.getentry("cla
43、sses.dex");long time = ze.gettime();lastbuilttimestring = new simpledateformat("yyyy-mm-dd hh:mm:ss").format(new java.util.date(time);catch (exception e)/最后編譯時(shí)間是“未知”.return lastbuilttimestring;private string getversionname()string versionname = "unknown"tryversionname = this
44、.getpackagemanager().getpackageinfo(getpackagename(), 0).versionname;catch (namenotfoundexception e)/最后的版本名是“未知”。return versionname;/* * 處理該事件的優(yōu)先權(quán) */public boolean onpreferenceclick(preference preference)if (preference.getkey().equals(pen_color_key)string str = getresources().getstring(r.string.tip_
45、choose_color);new colorpickerdialog(this, this, brush.getpen().getcolor(), str).show();else if (preference.getkey().equals(pen_width_key)showsetbrushwidthdialog();return true;/* *彈出一個(gè)對(duì)話框seekbar以控制畫(huà)筆的寬度 */private void showsetbrushwidthdialog()seekbardialog seekbardialog = new seekbardialog(this);seek
46、bardialog.settitle(brush.getpen().getstrokewidth() + " 像素");seekbardialog.setbutton(getresources().getstring(r.string.alert_dialog_ok),new dialoginterface.onclicklistener()public void onclick(dialoginterface dialog, int whichbutton)dialog.dismiss(););seekbardialog.show();/* *當(dāng)畫(huà)刷顏色改變時(shí),這個(gè)方法將
47、被調(diào)用。 */public void colorchanged(int color)brush pen = brush.getpen();pen.setcolor(color);圖4,打開(kāi)菜單鍵圖5,打開(kāi)菜單中的設(shè)置當(dāng)在菜單中選擇形狀之后,就會(huì)彈出形狀的界面,在形狀界面有很多形狀供選擇,下面可以有幾個(gè)形狀的源代碼。當(dāng)選擇需要形狀之后就進(jìn)入到畫(huà)布,畫(huà)出的圖形就會(huì)是選擇到的形狀。直線代碼如下:import org.vhow.paintpad.tools.brush;import android.graphics.canvas;/* *直線。 */public class straightline
48、extends drawingoverridepublic void draw(canvas canvas)canvas.drawline(this.startx, this.starty, this.stopx, this.stopy,brush.getpen();矩形代碼如下:import org.vhow.paintpad.tools.brush;import android.graphics.canvas;/* *矩形。 */public class rect extends drawingoverridepublic void draw(canvas canvas)canvas.dr
49、awrect(this.startx, this.starty, this.stopx, this.stopy,brush.getpen();軌跡線代碼如下:import org.vhow.paintpad.tools.brush;import android.graphics.canvas;import android.graphics.path;/* *跟蹤手指在屏幕上運(yùn)動(dòng)。 */public class pathline extends drawingpath mpath = null;private float mx, my;private static final float tou
50、ch_tolerance = 4;public pathline()mpath = new path();overridepublic void draw(canvas canvas)canvas.drawpath(this.mpath, brush.getpen();overridepublic void fingerdown(float x, float y, canvas canvas)mpath.reset();mpath.moveto(x, y);this.mx = x;this.my = y;overridepublic void fingermove(float x, float
51、 y, canvas canvas)float dx = math.abs(x - mx);float dy = math.abs(y - my);if (dx >= touch_tolerance | dy >= touch_tolerance)mpath.quadto(mx, my, (x + mx) / 2, (y + my) / 2);mx = x;my = y;this.draw(canvas);overridepublic void fingerup(float x, float y, canvas canvas)mpath.lineto(mx, my);this.dr
52、aw(canvas);mpath.reset(); 圖6,打開(kāi)菜單中的形狀功能在設(shè)置中就可以進(jìn)行顏色選擇,顏色的設(shè)置用public公有類(lèi)colorpickerdialog進(jìn)行設(shè)置,定義顏色改變的方法colorchanged,下面是顏色設(shè)置的代碼,圖7是進(jìn)入到顏色設(shè)置的界面。import android.app.dialog;import android.content.context;import android.graphics.canvas;import android.graphics.color;import android.graphics.paint;import android.graphics.rectf;import android.graphics.shader;import android.graphics.sweepgradient;import android.os.bundle;import
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 加工安裝服務(wù)合同范本
- 別墅家具購(gòu)買(mǎi)合同范本
- 公司舊車(chē)銷(xiāo)售合同范例
- 乙方工地材料合同范例
- 養(yǎng)生館共享店鋪合同范例
- 電源防雷插座板行業(yè)深度研究報(bào)告
- 中國(guó)電動(dòng)拉鉚槍項(xiàng)目投資可行性研究報(bào)告
- led設(shè)備購(gòu)買(mǎi)合同范本
- 制種水稻合同范本
- 公司外聘員工合同范例
- 2023年上海青浦區(qū)區(qū)管企業(yè)統(tǒng)一招考聘用筆試題庫(kù)含答案解析
- 2023版押品考試題庫(kù)必考點(diǎn)含答案
- 植物之歌觀后感
- 空氣能熱泵安裝示意圖
- 建筑工程施工質(zhì)量驗(yàn)收規(guī)范檢驗(yàn)批填寫(xiě)全套表格示范填寫(xiě)與說(shuō)明
- 2020年中秋國(guó)慶假日文化旅游市場(chǎng)安全生產(chǎn)檢查表
- 昆明天大礦業(yè)有限公司尋甸縣金源磷礦老廠箐-小凹子礦段(擬設(shè))采礦權(quán)出讓收益評(píng)估報(bào)告
- 心有榜樣行有力量 -從冬奧冠軍徐夢(mèng)桃身上感受青春奮斗初中主題班會(huì)
- GB/T 3860-1995文獻(xiàn)敘詞標(biāo)引規(guī)則
- 七年級(jí)英語(yǔ)下冊(cè)閱讀理解10篇
- 設(shè)計(jì)質(zhì)量、進(jìn)度保證措施
評(píng)論
0/150
提交評(píng)論