基于Android的時(shí)鐘系統(tǒng)_第1頁(yè)
基于Android的時(shí)鐘系統(tǒng)_第2頁(yè)
基于Android的時(shí)鐘系統(tǒng)_第3頁(yè)
基于Android的時(shí)鐘系統(tǒng)_第4頁(yè)
基于Android的時(shí)鐘系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

PAGE基于Android的時(shí)鐘系統(tǒng)數(shù)學(xué)與計(jì)算機(jī)科學(xué)系計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)【摘要】本文通過(guò)對(duì)Android時(shí)鐘系統(tǒng)進(jìn)行需求分析,在需求分析的基礎(chǔ)上、運(yùn)用Android的基本組件、Intent、API、Android界面編程等與Android開(kāi)發(fā)相關(guān)的技術(shù),對(duì)Android時(shí)鐘系統(tǒng)進(jìn)行詳細(xì)的設(shè)計(jì),代碼編寫(xiě)及功能測(cè)試,旨在設(shè)計(jì)出具有簡(jiǎn)潔美觀,而又實(shí)用的Android的時(shí)鐘系統(tǒng)。本系統(tǒng)主要有四個(gè)功能,設(shè)置鬧鐘功能,查看時(shí)間功能,秒表計(jì)時(shí)器功能和倒計(jì)時(shí)功能。這些功能是日常生活中是比較經(jīng)常見(jiàn)到的常用的功能,因此我們也可以把這款A(yù)ndroid的時(shí)鐘系統(tǒng)軟件當(dāng)成一款日常應(yīng)用軟件。這款軟件在Android開(kāi)發(fā)平臺(tái)上不斷修改、更正,最終實(shí)現(xiàn)了預(yù)期的功能?!娟P(guān)鍵詞】Android;時(shí)鐘;API;目錄TOC\o"1-3"\h\u1引言 11.1Android時(shí)鐘系統(tǒng)開(kāi)發(fā)意義 11.2Android時(shí)鐘發(fā)展趨勢(shì) 12Android時(shí)鐘系統(tǒng)可行性分析 12.1Android時(shí)鐘系統(tǒng)的可行性分析 12.1Android開(kāi)發(fā)環(huán)境介紹 22.1.1Android開(kāi)發(fā)環(huán)境搭建 22.2開(kāi)發(fā)時(shí)鐘系統(tǒng)用到的相關(guān)技術(shù)列表 23Android時(shí)鐘系統(tǒng)需求分析 23.1總體需求 23.2UI界面需求 33.3系統(tǒng)模塊需求 33.3.1設(shè)置鬧鐘需求 33.3.2查看時(shí)間需求 33.3.3秒表需求 33.3.4倒計(jì)時(shí)需求 34Android時(shí)鐘系統(tǒng)設(shè)計(jì) 34.1程序模塊詳細(xì)設(shè)計(jì) 34.2設(shè)置鬧鐘詳細(xì)設(shè)計(jì) 44.3查看時(shí)間詳細(xì)設(shè)計(jì) 44.4秒表計(jì)時(shí)器詳細(xì)設(shè)計(jì) 44.5倒計(jì)時(shí)詳細(xì)設(shè)計(jì) 54.6Android時(shí)鐘UI界面設(shè)計(jì) 54.7軟件整體功能圖 75Android時(shí)鐘系統(tǒng)實(shí)現(xiàn) 75.1文件結(jié)構(gòu)和用途 75.2程序主要代碼 106Android時(shí)鐘系統(tǒng)測(cè)試 137總結(jié)與展望 14致謝 15參考文獻(xiàn) 15PAGE16PAGE161引言時(shí)鐘是我們?nèi)粘I钪袦?zhǔn)確了解時(shí)間的最主要的工具,是人們用以計(jì)算和查看時(shí)間的精密儀器。從古至今出現(xiàn)過(guò)日晷、沙漏、機(jī)械鐘、石英鐘、電子時(shí)鐘等用于記錄時(shí)間的儀器,這些儀器是不同時(shí)期運(yùn)用不同科學(xué)技術(shù)手段對(duì)時(shí)鐘進(jìn)行創(chuàng)新的成果。在21世紀(jì)這個(gè)信息爆炸的時(shí)代,時(shí)鐘更是不斷的更新?lián)Q代,融入不同的媒介。手機(jī)時(shí)鐘無(wú)疑是我們?nèi)粘I钪薪佑|頻率極高的東西。從IDC官方網(wǎng)站上找到的數(shù)據(jù)經(jīng)整理如表1-1所示,2012年Android智能手機(jī)的出貨量達(dá)到了4.971億臺(tái),市場(chǎng)占有率達(dá)到68.8%,由此可見(jiàn)Android手機(jī)以迅猛的發(fā)展態(tài)勢(shì)走入了人們的視線,Android時(shí)鐘軟件作為Android手機(jī)必備的日常應(yīng)用軟件自然有大量的需求。表1-12012年全球各大操作系統(tǒng)的智能手機(jī)出貨量市場(chǎng)占有率列表操作系統(tǒng)AndroidiosBlackBerrySymbianWindowsPhone/WindowsMobile其他總計(jì)2012出貨量(億臺(tái))4.9711.3590.3250.2390.1790.1517.224市場(chǎng)占有率%68.818.94.513.312.482.091001.1Android時(shí)鐘系統(tǒng)開(kāi)發(fā)意義軟件開(kāi)發(fā)的意義都源自于人們對(duì)其有一定的需求。Android時(shí)鐘系統(tǒng)開(kāi)發(fā)也是源自于此,制作精巧樣式不一的Android時(shí)鐘,以其簡(jiǎn)潔美觀的外表,多樣的功能,小巧的外形,一目了然的設(shè)計(jì),贏得大家的喜愛(ài)。目前具有表盤的多功能的Android時(shí)鐘在市場(chǎng)上還不多見(jiàn),因此市場(chǎng)對(duì)Android時(shí)鐘系統(tǒng)有較大的需求,有廣闊的市場(chǎng)前景。而且一款功能齊全的鬧鐘能夠使你的生活變得井井有條,比如設(shè)置鬧鐘功能可以提醒你按時(shí)起床,查看時(shí)間功能能讓你準(zhǔn)確的清楚現(xiàn)在的時(shí)間,秒表計(jì)時(shí)功能能夠讓你在運(yùn)動(dòng)時(shí)記下你跑步的時(shí)間和倒計(jì)時(shí)功能可以讓你在既定的時(shí)間完成特定的任務(wù)等。1.2Android時(shí)鐘發(fā)展趨勢(shì)Android手機(jī)開(kāi)發(fā)平臺(tái)是進(jìn)幾年發(fā)展壯大起來(lái)的一種新型手機(jī)軟件開(kāi)發(fā)設(shè)計(jì)平臺(tái),自發(fā)布以來(lái),經(jīng)過(guò)數(shù)個(gè)版本的更新和完善,已成為最大的智能手機(jī)開(kāi)發(fā)平臺(tái)之一[1]。生活中接觸到的一些日常應(yīng)用軟件界面設(shè)計(jì)簡(jiǎn)潔大方的,功能多樣齊全的,功能實(shí)用的往往容易被人們所接受。Android時(shí)鐘發(fā)展也應(yīng)該遵循相同的設(shè)計(jì)理念,一般上人們作為一個(gè)時(shí)鐘應(yīng)該具有時(shí)鐘的基本功能,可以查看時(shí)間,可以設(shè)置鬧鐘,其次界面要美觀漂亮,然后在考慮與其他如秒表,計(jì)時(shí)器等功能相結(jié)合形成集成化系統(tǒng)化的時(shí)鐘軟件,先基礎(chǔ)后提升在然后集成,這將是Android時(shí)鐘開(kāi)發(fā)的一個(gè)趨勢(shì),也將是Android日常應(yīng)用開(kāi)發(fā)的一個(gè)趨勢(shì)。隨著Android移動(dòng)設(shè)備的普及,作為日常生活中應(yīng)用最廣泛的時(shí)鐘系統(tǒng)軟件在移動(dòng)設(shè)備上的開(kāi)發(fā)與設(shè)計(jì)也必將順應(yīng)潮流變得愈發(fā)的重要。2Android時(shí)鐘系統(tǒng)可行性分析2.1Android時(shí)鐘系統(tǒng)的可行性分析Android時(shí)鐘系統(tǒng)是基于Android開(kāi)發(fā)平臺(tái)開(kāi)發(fā)出來(lái)的軟件,現(xiàn)在Android平臺(tái)上已經(jīng)有類似的應(yīng)用軟件對(duì)外發(fā)布但是卻沒(méi)有公開(kāi)源碼,這說(shuō)明Android時(shí)鐘系統(tǒng)在技術(shù)層面是可行的。經(jīng)過(guò)一年的Android學(xué)習(xí)基本掌握Android編程方式,了解了Android編程環(huán)境的搭建,熟息了Android相關(guān)技術(shù),在編寫(xiě)Android程序方面有了一定的基礎(chǔ),操作方面也是可行的。而且制作Android時(shí)鐘系統(tǒng)之前下載過(guò)一些Android時(shí)鐘系統(tǒng)軟件,對(duì)Android時(shí)鐘系統(tǒng)有切身的體驗(yàn),如果有人能開(kāi)發(fā)出功能齊全界面美觀的Android時(shí)鐘系統(tǒng),很容易會(huì)被市場(chǎng)接受,對(duì)用戶會(huì)具有很大的吸引力。有很大的市場(chǎng)需求,因此在市場(chǎng)上推廣也具有可行性。2.1Android開(kāi)發(fā)環(huán)境介紹Android開(kāi)發(fā)環(huán)境是Android程序編寫(xiě)運(yùn)行的集成化開(kāi)發(fā)軟件,主要包括JavaJDK、Eclipse、AndroidSDK、AVD插件[2]等組合而成。2.1.1Android開(kāi)發(fā)環(huán)境搭建(1)下載安裝JDK;(2)設(shè)置三個(gè)環(huán)境變量:JAVA_HOME、PATH、CLASSPATH;(3)安裝Eclipse;(4)安裝AndroidSDK;(5)設(shè)置AndroidSDK路徑;(6)安裝AVD插件。2.2開(kāi)發(fā)時(shí)鐘系統(tǒng)用到的相關(guān)技術(shù)列表在開(kāi)發(fā)Android時(shí)鐘系統(tǒng)過(guò)程中會(huì)用到Android以及一些與Android軟件設(shè)計(jì)相關(guān)的技術(shù),下面是部分Android時(shí)鐘系統(tǒng)開(kāi)發(fā)涉及的技術(shù)及用途如表2-1所示。表2-1部分Android時(shí)鐘系統(tǒng)開(kāi)發(fā)涉及的技術(shù)及用途列表技術(shù)名稱用途view組件布局使用組件美化布局對(duì)話框用于提示信息Activity負(fù)責(zé)與用戶交互,提供可視化用戶界面資源聲音鬧鈴警報(bào)字符串參數(shù)、值等Intent連接不同的組件Service監(jiān)控組件或?yàn)榻M件提供相應(yīng)的后臺(tái)服務(wù)事件處理handler傳遞消息機(jī)制并對(duì)系統(tǒng)設(shè)置做出回應(yīng)圖形處理圖片對(duì)象的使用BroadcastReceive實(shí)現(xiàn)不同應(yīng)用程序之間的通信Photoshop用于制作表盤、按鈕等圖片處理3Android時(shí)鐘系統(tǒng)需求分析3.1總體需求Android時(shí)鐘系統(tǒng)軟件是要運(yùn)用Android開(kāi)發(fā)平臺(tái)開(kāi)發(fā)的系統(tǒng)時(shí)鐘軟件,這個(gè)時(shí)鐘軟件包含日常生活中時(shí)鐘最基本的功能,能夠設(shè)置鬧鐘,能夠查看當(dāng)前幾點(diǎn),能夠讀秒可以多次計(jì)時(shí)與倒計(jì)時(shí)。3.2UI界面需求經(jīng)過(guò)查看與使用網(wǎng)絡(luò)上的安卓時(shí)鐘反復(fù)研究發(fā)現(xiàn),如今安卓時(shí)鐘界面大多都不怎么好看,要么不夠簡(jiǎn)潔要么不夠美觀,簡(jiǎn)潔美觀的作品少之又少,因此在制作這一款A(yù)ndroid時(shí)鐘系統(tǒng)的時(shí)候?qū)缑嬉缶褪呛?jiǎn)潔美觀。3.3系統(tǒng)模塊需求Android時(shí)鐘系統(tǒng)是一個(gè)多功能的時(shí)鐘系統(tǒng)軟件,要設(shè)計(jì)出這么一款軟件我們需要根據(jù)這個(gè)系統(tǒng)功能的不同對(duì)軟件進(jìn)行模塊劃分,不同的功能獨(dú)立出來(lái)形成一個(gè)模塊[3],這樣能夠使我們更好的根據(jù)不同模塊不同特點(diǎn)進(jìn)行有針對(duì)性的進(jìn)行代碼編寫(xiě),根據(jù)總體需描述這款軟件我們大致可以分為以下四部分。3.3.1設(shè)置鬧鐘需求Android時(shí)鐘系統(tǒng)設(shè)置鬧鐘時(shí)要制作一個(gè)設(shè)置鬧鐘的按鈕,點(diǎn)擊設(shè)置鬧鐘按鈕可以跳轉(zhuǎn)到設(shè)置鬧鐘的界面,在鬧鐘設(shè)置鬧鐘界面要有添加、修改、刪除鬧鐘的按鈕,設(shè)置好鬧鐘后回到可以設(shè)置時(shí)鐘界面,在設(shè)置界面上顯示出鬧鐘被設(shè)置的時(shí)間,一周要重復(fù)鬧鈴幾天并計(jì)算出下一次鬧鈴所需要的時(shí)間。3.3.2查看時(shí)間需求對(duì)于每個(gè)時(shí)鐘系統(tǒng)來(lái)說(shuō)查看時(shí)間是一個(gè)最基本的功能,如今大多數(shù)的Android時(shí)鐘是以數(shù)字來(lái)顯示時(shí)間的,日常生活中有人們大多習(xí)慣于使用具有表盤設(shè)計(jì)的石英鐘,精巧的設(shè)計(jì),靚麗的外觀,一目了然的顯示時(shí)間方式,使得鐘表深受人們的喜愛(ài),在設(shè)計(jì)Android系統(tǒng)鬧鐘的時(shí)候出于對(duì)人們習(xí)慣的考慮要設(shè)計(jì)出具有表盤的用戶界面盤方便用戶查看時(shí)間。3.3.3秒表需求秒表具有測(cè)量時(shí)間功能,秒表需求源自需要精確計(jì)時(shí)的人群,人們可以用秒表測(cè)試自己的跑步速度,可以用秒表計(jì)算完成一項(xiàng)任務(wù)所需要的精確時(shí)間,可以用秒表測(cè)試自己呼吸頻率、脈搏。出于人們使用秒表的習(xí)慣考慮設(shè)計(jì)秒表時(shí)也應(yīng)該對(duì)秒表的表盤進(jìn)行相應(yīng)的設(shè)計(jì),秒表具有的開(kāi)始計(jì)時(shí)、計(jì)次、暫停、重置等功能都要在設(shè)計(jì)出的軟件上有相應(yīng)的表示。3.3.4倒計(jì)時(shí)需求倒計(jì)時(shí)被人們廣泛用于事件提醒。當(dāng)你有事情需要在特定的時(shí)間完成或者到某個(gè)時(shí)間點(diǎn)要完成某件事情的時(shí)候。需要倒計(jì)時(shí)這種功能,它可以提醒你按時(shí)完成所需要完成的工作。倒計(jì)時(shí)結(jié)束后會(huì)以聲音的形式做出提醒時(shí)間已到。4Android時(shí)鐘系統(tǒng)設(shè)計(jì)4.1程序模塊詳細(xì)設(shè)計(jì)根據(jù)需求分析將Android時(shí)鐘系統(tǒng)能構(gòu)分好模塊如圖4-1所示,接下來(lái)對(duì)程序各個(gè)模塊進(jìn)行詳細(xì)的設(shè)計(jì),詳細(xì)設(shè)計(jì)要畫(huà)出各個(gè)模塊要實(shí)現(xiàn)具體的功能的模型。圖4-1Android時(shí)鐘系統(tǒng)功能結(jié)構(gòu)模型4.2設(shè)置鬧鐘詳細(xì)設(shè)計(jì)根據(jù)設(shè)置鬧鐘的需求畫(huà)出設(shè)置鬧鐘的詳細(xì)的功能結(jié)構(gòu)模型如圖4-2所示。圖4-2設(shè)置鬧鐘功能結(jié)構(gòu)模型4.3查看時(shí)間詳細(xì)設(shè)計(jì)根據(jù)查看時(shí)間的需求畫(huà)出查看時(shí)間的詳細(xì)的功能結(jié)構(gòu)模型如圖4-3所示。圖4-3查看時(shí)間功能結(jié)構(gòu)模型4.4秒表計(jì)時(shí)器詳細(xì)設(shè)計(jì)根據(jù)秒表計(jì)時(shí)器的需求畫(huà)出秒表計(jì)時(shí)器的詳細(xì)的功能結(jié)構(gòu)模型如圖4-4所示。圖4-4秒表計(jì)時(shí)器功能結(jié)構(gòu)模型4.5倒計(jì)時(shí)詳細(xì)設(shè)計(jì)根據(jù)倒計(jì)時(shí)的需求畫(huà)出倒計(jì)時(shí)的詳細(xì)的功能結(jié)構(gòu)模型如圖4-5所示。圖4-5倒計(jì)時(shí)功能結(jié)構(gòu)模型4.6Android時(shí)鐘UI界面設(shè)計(jì)根據(jù)需求分析中所要求的功能設(shè)計(jì)出各個(gè)時(shí)鐘模塊UI界面草圖,然后尋找合適的圖片,使用Ps以及Android自帶的圖片處理工具處理所需要的圖片,并且把圖片按照一定的命名規(guī)則進(jìn)行命名,做好后把圖片拷貝到存放圖片的文件目錄下形成對(duì)象,以供編程時(shí)調(diào)用。在開(kāi)始編寫(xiě)代碼之前先要確定,各個(gè)UI界面到底需要哪些布局。然后根據(jù)不同布局采用相應(yīng)的方法分模塊進(jìn)行代碼的編寫(xiě)。第一個(gè)功能模塊設(shè)置鬧鐘根據(jù)需求分析所提到的功能畫(huà)界面草圖如圖4-6所示,我們打算把設(shè)置鬧鐘的界面設(shè)計(jì)成兩個(gè)界面,這樣會(huì)使界面變的更加簡(jiǎn)潔,第一個(gè)界面有打開(kāi)關(guān)閉鬧鐘,設(shè)置鬧鐘的功能,第二個(gè)界面有設(shè)置鬧鐘是否重復(fù),選擇星期幾重復(fù)使用鬧鐘,完成、修改、刪除鬧鐘,通過(guò)草圖我們可以把設(shè)置鬧鐘UI界面布局確定下來(lái)第一個(gè)頁(yè)面有導(dǎo)航欄要用相對(duì)布局第二個(gè)頁(yè)面則采用線性布局方式布局。圖4-6設(shè)置鬧鐘草圖第二個(gè)查看時(shí)間功能模塊設(shè)置鬧鐘根據(jù)需求分析所提到的功能畫(huà)界面草如圖4-7所示,查看時(shí)間界面主要有一個(gè)表盤,表盤上有三根指針,分別為時(shí)針、分針與秒針。表盤下方是兩個(gè)列表框主要用于顯示不同時(shí)區(qū)的時(shí)間,列表框下方是一個(gè)用于修改系統(tǒng)時(shí)間的按鈕。根據(jù)界面的特性把查看時(shí)間這個(gè)界面的布局設(shè)定為相對(duì)布局嵌套線性布局的布局方式。圖4-7查看時(shí)間草圖第三個(gè)查看秒表計(jì)時(shí)器功能模塊設(shè)置鬧鐘根據(jù)需求分析所提到的功能畫(huà)界面草如圖4-8所示,查看秒表界面同樣有一個(gè)表盤,大表盤中間用的是數(shù)字時(shí)鐘這樣可以使人們更加快速準(zhǔn)確的讀取秒表的時(shí)間,大表盤上同時(shí)還設(shè)計(jì)了一根指針當(dāng)指針走完一圈表示時(shí)間過(guò)了一分鐘,表盤下方有兩個(gè)小圓上面都有刻度,左邊用于顯示時(shí)右邊用于顯示秒。表盤下方是一個(gè)列表框用于顯示多次計(jì)時(shí)結(jié)果。列表框下方則設(shè)置了重疊的開(kāi)始按鈕,點(diǎn)擊開(kāi)始后按鈕會(huì)變?yōu)闀和?、?jì)次、按下暫停會(huì)出現(xiàn)開(kāi)始、計(jì)次的組合按鈕。根據(jù)界面的特性把查看時(shí)間這個(gè)界面的布局設(shè)定為相對(duì)布局嵌套線性布局的布局方式。圖4-8秒表計(jì)時(shí)器草圖第四個(gè)倒計(jì)時(shí)功能模塊設(shè)置鬧鐘根據(jù)需求分析所提到的功能畫(huà)界面草如圖4-9所示,倒計(jì)時(shí)功能界面,把設(shè)置時(shí)間改為滾輪形,這樣可以方便用戶操作,而且界面也相對(duì)美觀,滾輪下方是設(shè)置鬧鈴,和計(jì)時(shí)屏幕長(zhǎng)亮,在下方是一個(gè)重疊的開(kāi)始按鈕,點(diǎn)擊開(kāi)始后會(huì)出現(xiàn)取消暫停、取消繼續(xù)的組合按鍵。根據(jù)界面的特性把查看時(shí)間這個(gè)界面的布局設(shè)定為相對(duì)布局嵌套線性布局的布局方式。圖4-9倒計(jì)時(shí)草圖4.7軟件整體功能圖Android時(shí)鐘系統(tǒng)整體功能如圖4-10所示,當(dāng)各個(gè)模塊編寫(xiě)好后需要對(duì)各個(gè)模塊進(jìn)行整合,通過(guò)整體功能圖我們可以知道系統(tǒng)各個(gè)功能模塊以及模塊中有那些組件和按鈕。以方便代碼編寫(xiě)和后期測(cè)試。圖4-10Android時(shí)鐘系統(tǒng)整體功能圖5Android時(shí)鐘系統(tǒng)實(shí)現(xiàn)5.1文件結(jié)構(gòu)和用途創(chuàng)建android項(xiàng)目后可以看到android文件的結(jié)構(gòu)目錄如圖5-1所示,目錄中res文件、src文件、AndroidManifest.xml文件是android項(xiàng)目必須的文件其他文件則是可選的[4],src文件存放java文件,res文件存放layout布局文件、values存放各種xml資源文件,drawable-xxx,用于存放圖片資源文件,AndroidManifest.xml用于存放系統(tǒng)清單文件控制名稱、圖表、訪問(wèn)權(quán)限等整體屬性。圖5-1文件結(jié)構(gòu)目錄其中/src文件的子目錄中存放的是包和java代碼文件,表5-1是一張用于顯示java資源文件用途的表格。表5-1作品資源目錄文件用途列表包名稱文件名稱說(shuō)明com.chenfangxin.deskclockDuocijishi.Java多次計(jì)時(shí)Index.java導(dǎo)航欄MainActivity.java秒表計(jì)時(shí)器ActivitySaveRun.java保存運(yùn)行狀態(tài)SlipBotton.java滑動(dòng)按鈕Timer.java時(shí)鐘表盤界面com.chenfangxin.selecttimeeArrayWheelAdapter.java表盤數(shù)組適配器NumericWheelAdapter.java數(shù)值型(滾輪)表盤適配器OnWheelChangedListener.java表盤事件監(jiān)聽(tīng)器OnWheelScrollListener.java數(shù)值型(滾輪)表盤事件監(jiān)聽(tīng)器ScreenInfo.java屏幕信息WheelAdapter.java表盤適配器WheelMain.java表盤主函數(shù)WheelView.java表盤視圖其中/res/drawable/目錄中設(shè)置了圖片的觸發(fā)狀態(tài)/res/drawable-xxx,保存著Android開(kāi)發(fā)時(shí)用到的不同大小格式不一的圖像文件/res/layout用于保存包含各種布局.XML文件。/res/raw用于保存聲音資源文件,/res/values目錄中保存的是用來(lái)自定義字符串XML的文件和保存樣式的XML的文件,/res/xml目錄中保存的是XML格式的文件,些文件不僅可以設(shè)置界面的顯示,而且還可以用于啟動(dòng)activity。表5-2是一張表格用于顯示res/目錄資源文件用途的表格。表5-2作品資源目錄文件用途列表資源目錄文件說(shuō)明drawableAdd_alarm.xmlBtn_trens_left.xmml………Wheel_val.xml此文件設(shè)置了圖片的觸發(fā)狀態(tài)其中省略號(hào)代表有很多此類文件drawable-hdpidrawable-mdpidrawable-xhdpidrawable-xxhdpiDefort_clock_hour.png…………List_bg.9.png………..這幾個(gè)文件夾啊用于存放圖片資源中省略號(hào)代表有很多此類文件就不進(jìn)行說(shuō)明了layoutalarm_alert.xml鬧鐘提醒彈窗布局文件alarm_clock.xml設(shè)置鬧鐘按鈕加ListView列表框布局文件alarm_time.xml鬧鐘時(shí)間界面布局文件context_menu_header.xml記錄其他地區(qū)時(shí)間組件布局daojishi.xml倒計(jì)時(shí)界面布局文件duocijishi.xmllist_item.xml秒表多次計(jì)時(shí)界面布局文件計(jì)時(shí)計(jì)次界面布局文件index.xml索引布局文件main.xml自帶布局文件set_alarm.xml設(shè)置鬧鐘界面布局文件timepicker.xml時(shí)間選擇布局文件timer.xml時(shí)鐘表盤界面布局文件rawfallbackring.ogg聲音資源文件valuesstrings.xmlstyles.xml保存字符串的XML的文件保存樣式的XML的文件xmlalarm_prefs.xmlsettings.xml這兩個(gè)文件不僅可以設(shè)置界面的顯示,而且還可以用于啟動(dòng)activity5.2程序主要代碼Android時(shí)鐘系統(tǒng)是由許多組件組成,大多數(shù)的組件運(yùn)用方法都很相似,因此以查看時(shí)鐘和秒表設(shè)計(jì)為例其他按鈕和組件的使用與之相類似就不一一羅列了。查看時(shí)間表盤界面效果,如圖5-1所示。圖5-1查看時(shí)間表盤界面效果以下是packagecom.chenfangxin.deskclock/timer.java文件的用于控制表盤的一些代碼。//packagecom.chenfangxin.deskclock; ImageViewdefault_clock_second,default_clock_minute,default_clock_hour;//時(shí)針、分針、秒針 inthour;//時(shí) intminute;//分 intsecond;//秒 ButtonChangethesystemtime;//修改系統(tǒng)時(shí)間 RotateAnimationhouranimation,minuteanimation,secondanimation; TextViewlondomtime,newyorktime;//RotateAnimation類是Android系統(tǒng)中的旋轉(zhuǎn)變化動(dòng)畫(huà)類對(duì)修改系統(tǒng)時(shí)間進(jìn)行事件監(jiān)聽(tīng)并啟動(dòng)意圖。protectedvoidonStart(){ handler.post(runnable); Changethesystemtime.setOnClickListener(newOnClickListener(){//對(duì)改變系統(tǒng)時(shí)間按鈕進(jìn)行事件監(jiān)聽(tīng) @Override publicvoidonClick(Viewarg0){//啟動(dòng)意圖 Intentintent=newIntent("/"); ComponentNamecm=newComponentName("com.android.settings", "com.android.settings.DateTimeSettingsSetupWizard"); intent.setComponent(cm); intent.setAction("ent.action.VIEW"); startActivity(intent); } }); super.onStart();}RotateAnimation類是實(shí)現(xiàn)表盤上的指針轉(zhuǎn)動(dòng)的效果的動(dòng)畫(huà)類。floatfromDegreeshour=0;//初始化floatfromDegreesminute=0;floatfromDegreessecond=0;//指針轉(zhuǎn)動(dòng)的效果的動(dòng)畫(huà)類使表盤上的指針按一定的規(guī)律轉(zhuǎn)動(dòng) Runnablerunnable=newRunnable(){ @Override publicvoidrun(){ t.setToNow();//獲取系統(tǒng)時(shí)間。 hour=t.hour;//0-23 minute=t.minute; second=t.second; handler.postDelayed(runnable,200); houranimation=newRotateAnimation(fromDegreeshour, fromDegreeshour,Animation.RELATIVE_TO_SELF,0.5f, Animation.RELATIVE_TO_SELF,0.5f); houranimation.setDuration(100); houranimation.setFillAfter(true); default_clock_hour.startAnimation(houranimation); fromDegreeshour=hour*15/2; minuteanimation=newRotateAnimation(fromDegreesminute, fromDegreesminute,Animation.RELATIVE_TO_SELF,0.5f, Animation.RELATIVE_TO_SELF,0.5f); minuteanimation.setDuration(100); minuteanimation.setFillAfter(true); default_clock_minute.startAnimation(minuteanimation); fromDegreesminute=minute*6; secondanimation=newRotateAnimation(fromDegreessecond, fromDegreessecond,Animation.RELATIVE_TO_SELF,0.5f, Animation.RELATIVE_TO_SELF,0.5f); secondanimation.setDuration(100); secondanimation.setFillAfter(true); default_clock_second.startAnimation(secondanimation); fromDegreessecond=second*6; } };}倫敦與紐約時(shí)間的計(jì)算。 Stringa=String.valueOf(minute); if(a.length()==1){ a="0"+a; }if(hour>=7){//敦與紐約的時(shí)間 londomtime.setText(hour-7+":"+a); }else{ londomtime.setText(24-7+hour+":"+a); } if(hour>=12){ newyorktime.setText(hour-12+":"+a); }else{ newyorktime.setText(24-12+hour+":"+a);}多次計(jì)時(shí)表盤效果圖如圖5-2所示圖5-2多次計(jì)時(shí)表盤效果Duocijishi.java用于點(diǎn)擊暫停計(jì)次的代碼publicvoidonClick(Viewarg0){ startbuttondaoji.setVisibility(View.GONE); startandcannellin.setVisibility(View.VISIBLE); if(null==timer){ if(null==task){ SaveRun.setisjishi(true); btnStartPause.setText("暫停"); duocijicubutton.setText("計(jì)次"); okclear=false; min_progress.setVisibility(View.VISIBLE); second_progress.setVisibility(View.VISIBLE); hour_progress.setVisibility(View.VISIBLE); task=newTimerTask(){ @Override publicvoidrun(){ if(null==msg){ msg=newMessage(); }else{ msg=Message.obtain(); } msg.what=1; handler.sendMessage(msg); } };} timer=newTimer(true);timer.schedule(task,100,100);}6Android時(shí)鐘系統(tǒng)測(cè)試Android時(shí)鐘系統(tǒng)主要有設(shè)置鬧鐘,查看時(shí)間,秒表計(jì)時(shí)器和倒計(jì)時(shí)等功能,我們要對(duì)這些功能進(jìn)行黑盒子測(cè)試[5],測(cè)試結(jié)果如下。點(diǎn)擊導(dǎo)航欄鬧鐘會(huì)出現(xiàn)添加鬧鐘界面如圖6-1所示,在這個(gè)界面上點(diǎn)擊添加鬧鐘按鈕會(huì)跳轉(zhuǎn)到設(shè)置鬧鐘界面如圖6-2所示,界面中有啟用鬧鐘、時(shí)間、重復(fù)時(shí)間、鈴聲、震動(dòng)、標(biāo)簽、添加、刪除鬧鐘等功能,點(diǎn)擊時(shí)間對(duì)時(shí)間進(jìn)行設(shè)置點(diǎn)擊完成又跳轉(zhuǎn)回添加鬧鐘界面完成添加鬧鐘界面這時(shí)就會(huì)多出一個(gè)鬧鐘,當(dāng)鬧鐘時(shí)間到時(shí)會(huì)彈出對(duì)話框如圖6-3所示或通過(guò)鈴聲震動(dòng)的方式發(fā)出提醒。圖6-1添加鬧鐘界面圖6-2設(shè)置鬧鐘界面圖6-3鬧鐘響起界面點(diǎn)擊導(dǎo)航欄時(shí)間就會(huì)出現(xiàn)查看時(shí)間界面如圖6-4所示,這個(gè)界面主要作用是可以查看當(dāng)前的時(shí)間。圖6-4查看時(shí)間界面點(diǎn)擊導(dǎo)航欄秒表就會(huì)出現(xiàn)秒表計(jì)時(shí)界面如圖6-5所示,點(diǎn)擊開(kāi)始就會(huì)出現(xiàn)暫停和計(jì)次按鈕,表盤上分針和秒針的指針在轉(zhuǎn)動(dòng),點(diǎn)擊計(jì)次就會(huì)出現(xiàn)示計(jì)次測(cè)試界面的效果如圖6-6所,點(diǎn)擊暫停就會(huì)出現(xiàn)繼續(xù)重置界面效果如圖6-7所示,并保存當(dāng)前時(shí)間,點(diǎn)擊繼續(xù)則繼續(xù)開(kāi)始點(diǎn)擊,重置則回到秒表計(jì)時(shí)界面如圖6-5所示重新開(kāi)始。圖6-5秒表計(jì)時(shí)界面圖6-6暫停計(jì)次界面圖6-7繼續(xù)重置界面點(diǎn)擊導(dǎo)航欄倒時(shí)就會(huì)出現(xiàn)倒計(jì)時(shí)界面如圖6-8所示,設(shè)置好時(shí)間,滾輪從左到右為時(shí)、分、秒設(shè)置好時(shí)間點(diǎn)擊啟動(dòng)會(huì)跳轉(zhuǎn)到暫停取消界面如圖6-9所示,指針開(kāi)始反向倒計(jì)時(shí),點(diǎn)擊暫停按鈕就會(huì)保存當(dāng)前時(shí)間,點(diǎn)擊繼續(xù)就可以重新開(kāi)始,點(diǎn)擊取消回到倒計(jì)時(shí)界面。并且結(jié)束倒計(jì)時(shí)時(shí)可以有鈴聲提醒。圖6-8倒計(jì)時(shí)界面圖6-9暫停取消倒計(jì)時(shí)界面圖6-10繼續(xù)取消倒計(jì)時(shí)界面7總結(jié)與展望通過(guò)這次的Android時(shí)鐘系統(tǒng)的開(kāi)發(fā),讓我意識(shí)到。進(jìn)行Android開(kāi)發(fā)時(shí),需求分析非常重要。好的需求分析能幫助我們正確了解業(yè)務(wù)邏輯,以避免在開(kāi)發(fā)過(guò)程中邏輯混亂。導(dǎo)致代碼大量重寫(xiě),不僅浪費(fèi)時(shí)間更加浪費(fèi)精力,自己開(kāi)發(fā)的時(shí)候信心同樣會(huì)受挫。對(duì)任何項(xiàng)目的開(kāi)發(fā)都要進(jìn)行詳細(xì)設(shè)計(jì),詳細(xì)設(shè)計(jì)是任何開(kāi)發(fā)Android程序的核心。在詳細(xì)設(shè)計(jì)中畫(huà)出UI界面草圖能夠使我們對(duì)軟件功能有直觀的了解有助于我們對(duì)項(xiàng)目高速的進(jìn)行開(kāi)發(fā)。詳細(xì)設(shè)計(jì)的目的是為了讓開(kāi)發(fā)者時(shí)刻明白下一步開(kāi)發(fā)的目標(biāo)。有了明確的目標(biāo),才能確保在開(kāi)發(fā)過(guò)程正常有序的進(jìn)行,按時(shí)完成按階段的完成指定模塊的任務(wù)。代碼編寫(xiě)一定要規(guī)范。比如圖片資源的命名,變量的命名要有一定的規(guī)律可循,如果在編寫(xiě)時(shí)不注重代碼的規(guī)范性,會(huì)給后期的檢查帶來(lái)巨大的麻煩,也會(huì)耗費(fèi)大量的時(shí)間。規(guī)范的編碼風(fēng)格可以規(guī)避一些不必要錯(cuò)誤,節(jié)省大部分的調(diào)試時(shí)間。而且多寫(xiě)一些注解可以讓人閱讀、查找代碼更加方便。Android時(shí)鐘系統(tǒng)是基于Android開(kāi)發(fā)平臺(tái)的生活A(yù)ndroid小應(yīng)用。實(shí)現(xiàn)了時(shí)鐘系統(tǒng)的基本功能,Android時(shí)鐘系統(tǒng)可以設(shè)置鬧鐘功能,查看時(shí)間功能,秒表計(jì)時(shí)器功能和倒計(jì)時(shí)功能。當(dāng)然由于時(shí)間不足與編程能力有所欠缺,通過(guò)指針撥動(dòng)的方式設(shè)置鬧鐘暫時(shí)沒(méi)辦法實(shí)現(xiàn)是這次Android時(shí)鐘系統(tǒng)開(kāi)發(fā)的小小遺憾,希望能夠在以后有能力的時(shí)候慢慢功能補(bǔ)齊。致謝首先,我要感謝論文指導(dǎo)老師郭永寧老師。從畢業(yè)設(shè)計(jì)開(kāi)題報(bào)告到后期的畢業(yè)設(shè)計(jì)以及論文寫(xiě)作,郭老師自始至終都會(huì)陪伴在我們左右。當(dāng)遇到困難的時(shí)候他總會(huì)給予我們很大的鼓勵(lì)與支持。無(wú)論是他深厚的理論水平還是平易近人的處事風(fēng)格對(duì)于我以后的工作和學(xué)習(xí)都有一定的幫助。其次,我要感謝數(shù)學(xué)與計(jì)算機(jī)科學(xué)系的領(lǐng)導(dǎo)和任課教師。是你們悉心的教導(dǎo)無(wú)私的奉獻(xiàn)使我們有一定的知識(shí)儲(chǔ)備,使我們學(xué)會(huì)了如何從各個(gè)方面汲取知識(shí)的能力。最后,感謝身邊的同

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論