




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
畢業(yè)設(shè)計(jì)基于安卓平臺的音樂播放器第=1\*ROMANI第=1\*ROMANI頁基于安卓平臺的音樂播放器設(shè)計(jì)與開發(fā)摘要Android平臺是Google公司最新推出的一個(gè)手機(jī)平臺,該平臺對移動設(shè)備的程序集中包括一個(gè)操作系統(tǒng),一個(gè)中間件和一些關(guān)鍵性應(yīng)用。使用該平臺不需要任何費(fèi)用,代碼完全開放。開發(fā)人員可以在平臺系統(tǒng)上快速開發(fā),并可以利用其它開發(fā)人員的工作成果。所以,這為手機(jī)開發(fā)創(chuàng)造了更大的靈活性,工作少,周期短,快速成型,并一步到位,同時(shí)用戶可以最大限度的自定義自己的手機(jī),以豐富自己手機(jī)的功能,增加手機(jī)在市場上的競爭力。Android平臺以Linux系統(tǒng)作為平臺的基礎(chǔ),使用Linux內(nèi)核可以加快軟件移植速度。本文以Android開發(fā)平臺為基礎(chǔ),首先簡要介紹了安卓平臺發(fā)展歷程、以及當(dāng)前國內(nèi)外的發(fā)展現(xiàn)狀。然后詳細(xì)的介紹了Android開發(fā)平臺的開發(fā)環(huán)境。之后對基于Android平臺的音樂播發(fā)器系統(tǒng)做了一個(gè)詳細(xì)的需求分析。在需求分析結(jié)束后詳細(xì)論述了音樂播放器的詳細(xì)設(shè)計(jì)。根據(jù)Android開發(fā)平臺自身的結(jié)構(gòu)特點(diǎn),把音樂播放器的開發(fā)分為兩個(gè)部分來進(jìn)行分析和設(shè)計(jì),一部分是窗口的設(shè)計(jì),主要是定義窗口的屬性和關(guān)聯(lián)窗口的處理函數(shù);另一部分是功能的實(shí)現(xiàn),主要是結(jié)合Android平臺提供的資源和對音樂播放器的功能分析最終實(shí)現(xiàn)定義的功能。最后對基于Android開發(fā)平臺的音樂播放系統(tǒng)進(jìn)行功能測試與驗(yàn)證。關(guān)鍵詞:Android平臺,音樂播放器,基于Android平臺的開發(fā)與設(shè)計(jì)第=2\*ROMANII頁東北大學(xué)秦皇島分校畢業(yè)設(shè)計(jì)(論文)第=2\*ROMANII頁TheDesignandDevelopmentofMusicPlayerBasedonAndroidplatformAuthor:XXXTutor:XXXAbstractAndroidplatformisGoogle’Slatestlaunchofamobileplatform,theplatformforproceduresofmobiledevices,includesanoperatingsystems,amiddlewareandsomecriticalapplications.Theplatformdoesnotrequireanycharges.Thecodeiscompletelyopen.Developerscanquicklydevelopontheplatformsystemandotherdeveloperscanusetheresultsoftheworkbyotherdevelopers.Therefore,Itmadegreaterflexibilityforthedevelopmentofmobilephone,lesswork,shortcycle,rapidprototypingandone-stop,meanwhileuserscancustomizetheirmobilephonesbesttoenrichthefunctionsoftheircellphones,competitivenessofmobilephonesmarket.AndroidplatformisbasedonLinuxsystemsusingtheLinuxkernel.Thesoftwarecallspeeduptherateoftransplantation.ThisarticletakestheAndroiddevelopingplatformasafoundation.Firstitbrieflyintroducesandroidplatformdevelopment,aswellasthecurrentdomesticandforeigndevelopmentpresentsituation.Afterthediscussionoftherationaleabove,thisarticleintroducesthedevelopmentenvironmentofAndroiddevelopingplatformindetailandmakesadetaileddemandanalysistoMusicplayerbasedontheAndroiddevelopingplatform.ThenthisarticlegivesadetailedsoftwaredesignofMusicplayer.BasedontheAndroiddevelopingplatform’sfeature.IdividetheMusicplayer’sdevelopmentintotwopartstoanalyzeanddesign.Onepartisthewindowdesign,mainlydefinesthewindowattributeandtheconnectedwindowprocessingfunction;Anotherpartisfunctionrealization,mainlyunifiestheresourceswhichtheAndroidplatformprovidesandfunctionanalysistotheMusicplayertoaccomplishthefunctionwhichwedefined.FinallyitcarriesonthefunctiontestbasedontheMusicplayerofAndroidplatform.KeyWords:Androidplatform,Musicplayer,TheDesignandDevelopmentbasedonAndroidplatform第=3\*ROMANIII頁東北大學(xué)秦皇島分校畢業(yè)設(shè)計(jì)(論文)第=3\*ROMANIII頁目錄TOC\o"1-3"\h\u43871緒論 V頁21792參考文獻(xiàn) 51HYPERLINK\l_Toc18156附錄 521緒論Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動設(shè)備,如智能手機(jī)和平板電腦,由Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。尚未有統(tǒng)一中文名稱,中國大陸地區(qū)較多人使用“安卓”或“安致”。Android操作系統(tǒng)最初由AndyRubin開發(fā),主要支持手機(jī)。2005年8月由Google收購注資。2007年11月,Google與84家硬件制造商、軟件開發(fā)商及電信營運(yùn)商組建開放手機(jī)聯(lián)盟共同研發(fā)改良Android系統(tǒng)。隨后Google以Apache開源許可證的授權(quán)方式,發(fā)布了Android的源代碼。第一部Android智能手機(jī)發(fā)布于2008年10月。Android逐漸擴(kuò)展到平板電腦及其他領(lǐng)域上,如電視、數(shù)碼相機(jī)、游戲機(jī)等。2011年第一季度,Android在全球的市場份額首次超過塞班系統(tǒng),躍居全球第一。2012年11月數(shù)據(jù)顯示,Android占據(jù)全球智能手機(jī)操作系統(tǒng)市場76%的份額,中國市場占有率為90%[1]。1.1項(xiàng)目背景隨著計(jì)算機(jī)的廣泛運(yùn)用,手機(jī)市場的迅速發(fā)展,各種音頻視頻資源也在網(wǎng)上廣為流傳,這些資源看似平常,但已經(jīng)漸漸成為人們生活中必不可少的一部分了。于是各種手機(jī)播放器也緊跟著發(fā)展起來,但是很多播放器一味追求外觀花哨,功能龐大,對用戶的手機(jī)造成了很多資源浪費(fèi),比如CPU,內(nèi)存等的占用率過高,在用戶需要多任務(wù)操作時(shí),受到了不小的影響,帶來了許多不便,而對于大多數(shù)普通用戶,許多功能用不上,形同虛設(shè)。針對以上各種弊端,選擇了開發(fā)多語種的音頻視頻播放器,將各種性能優(yōu)化,繼承播放器的常用功能,滿足一般用戶(如聽歌,看電影)的需求,除了能播放常見格式的語音視頻文件,高級功能:還能播放RMVB格式的視頻文件。此外,還能支持中文、英文等語言界面。
要研究各種市場上流行的手機(jī)播放器,了解它們各自的插件及編碼方式,還有各種播放器播放的特別格式文件,分析各種編碼的優(yōu)缺點(diǎn)以及各種播放器本身存在的缺陷和特點(diǎn),編寫出功能實(shí)用,使用方便快捷的播放器。目前已經(jīng)實(shí)現(xiàn)的功能有能播放常見音頻文件的功能,如MP3,WAV,等,擁有播放菜單,能選擇播放清單,具備一般播放器的功能,如快進(jìn),快退,音量調(diào)節(jié)等。1.2國內(nèi)外相關(guān)研究現(xiàn)狀及發(fā)展趨勢在Linux上流行的播放器有多種主要有Xmms,RealPlayer,Xmovie,QuickTime,Mplayer等,以下對這些播放器進(jìn)行分析介紹。1、XmmsXmms是X-Window系統(tǒng)下最流行的多媒體播放器之一,大多數(shù)Linux版本都捆綁了改產(chǎn)品最為Linux下的標(biāo)配音頻播放器,Xmms可以播放MP3、MOD、Wav等多媒體文件,而且只要提供相應(yīng)的插件,它還可以支持而更多的多媒體類型。2、XmovieXmovie最早是作為電視節(jié)目的播放軟件。它的播放界面非常簡單。界面上除了播放、快進(jìn)、快退、播放時(shí)間顯示和播放進(jìn)度顯示這幾個(gè)主要功能外,沒有其他控制功能。界面上方的選單條不含有任何播放控制功能,基本上都是對播放畫面的調(diào)整和環(huán)境變量的控制。Xmovie支持mpg,mov,vob,m2v等視頻格式,同時(shí)它還能夠播放MP2和MP3音頻格式的文件。3、RealPlayerRealPlayer在低帶寬下支持音頻、視頻多媒體的低損失傳輸,同時(shí)具有優(yōu)秀的流媒體在線播放能力。RealPlayerforLinux版本的操作界面與其Windows平臺下的版本類似。RealPlayer的后續(xù)版本增加了對微軟視頻和音頻的支持,并支持便攜式設(shè)備。4、QuickTimeQuickTime是蘋果公司開發(fā)的流式音視頻解決方案,也是出現(xiàn)較早的流媒體文件格式之一,它由三個(gè)不同部分組成:QuickTimeMove(電影)文件格式,QuickTime媒體抽象層、QuickTime內(nèi)置媒體服務(wù)系統(tǒng)。這類文件擴(kuò)展名通常是.mov,它所對應(yīng)的播放器是“QuickTime”。5、MPlayerMPlayer是Linux上的電影播放器,它的功能十分強(qiáng)大,能夠播放眾多格式的文件。MPlayer能使用眾多本地的Xanim,RealPlayer和Win32DLL邊解碼器,播放大多數(shù)MPEG、VOB、AVI、OGG、ASF/WMV等文件,也能播放VideoCD、SVCD、DVD和DivX格式的電影。MPlayer的另一個(gè)大的特色是支持廣泛的輸出設(shè)備,它可以在Xll、Xv、DGA、OpenGL、SVGAlib等下工作。目前,媒體播放器主要趨向以下幾個(gè)方向:首先,支持多樣化格式。Xmms、Xmovie、QuickTime主要是針對固定的媒體格式類型或傳輸協(xié)議,具有一定的專用性,因此難以滿足廣大消費(fèi)者的的需求,如今的音頻,視頻格式越來越多,如常見的音頻WMA,MP3,MIDI以及視頻的RM,AVI等。如何能將能播放所有這些,是現(xiàn)今研究的方向。其次,可擴(kuò)展性也是一個(gè)必要的趨勢,如今的播放器功能越來越強(qiáng)大,如何在現(xiàn)有的基礎(chǔ)上使功能更全面,也是人們接受的一個(gè)因素。這就是本課題選用開放式Android平臺的一個(gè)原因,代碼完全公開,為其功能擴(kuò)展提供方便的條件。1.3項(xiàng)目研究意義目前手機(jī)的音樂播放功能已經(jīng)是大家比較關(guān)注的一個(gè)部分了,不少人在購買手機(jī)的時(shí)候都會關(guān)心手機(jī)的音樂播放的能力,這也足以看出目前大家對音樂播放功能的重視,所以一款性能良好的手機(jī)音樂播放器軟件一定會受到歡迎。和傳統(tǒng)的音樂播放器相比,手機(jī)播放音樂更加的容易攜帶,其他方面也都不輸于傳統(tǒng)音樂播放器所。一款專業(yè)的音樂播放軟件是手機(jī)中必不可少的要素,幾乎市場上所有的手機(jī)都擁有一個(gè)自帶的音樂播放軟件,通過軟件可以對音樂欣賞中一些必要的元素進(jìn)行人性化的設(shè)置,同時(shí)在操作的時(shí)候也能得到一定的便利,但是不能滿足用戶的所有要求,所以就出現(xiàn)了各種各樣的手機(jī)音樂播放軟件,來滿足不同用戶的不同要求。不同手機(jī)平臺的手機(jī),所支持的音樂播放軟件也是各不相同,而現(xiàn)在最流行的手機(jī)平臺就是google的android手機(jī)平臺。Android播放器是近年來手機(jī)當(dāng)中比較流行的音樂播放軟件.通過結(jié)合自己所學(xué)的知識來設(shè)計(jì)和開發(fā)Android音樂播放器,可以深入學(xué)習(xí)Android多媒體框架結(jié)構(gòu)和多媒體框架核心Opencore,并通過對Opencore的學(xué)習(xí)進(jìn)一步的認(rèn)識和理解Android多媒體播放機(jī)制,而且還可以在開發(fā)軟件實(shí)物的過程中,熟悉軟件開發(fā)流程,掌握Android領(lǐng)域小應(yīng)用開發(fā)的方法,學(xué)習(xí)新的計(jì)算機(jī)知識,豐富自己的知識面。Android平臺是完全開放的平臺,智能手機(jī)里的各種應(yīng)用軟件也越來越完備,在Android平臺設(shè)計(jì)和開發(fā)一款音樂播放器可以擺脫不夠智能音樂播放器的因素,并且具有很廣闊的前景。1.4本文主要內(nèi)容本文的主要內(nèi)容是研究、分析和實(shí)現(xiàn)基于Android手機(jī)平臺的音樂播放器系統(tǒng),包括以下幾個(gè)部分:第1章簡要介紹了Android手機(jī)平臺的背景及發(fā)展情況。第2章研究了基于Android平臺的軟件開發(fā)環(huán)境,主要包括Android平臺的產(chǎn)品支持、Android平臺軟件的消息機(jī)制。第3章詳述進(jìn)行基于Android手機(jī)平臺的音樂播放器的開發(fā)的整個(gè)過程,包括對軟件的需求分析、軟件的結(jié)構(gòu)設(shè)計(jì)。第4章主要敘述了播放器的詳細(xì)設(shè)計(jì),包括主要模塊功能的實(shí)現(xiàn)以和部分核心代碼。第5章是對音樂播放器的軟件測試,主要是對其功能驗(yàn)證,確定是否符合軟件規(guī)格要求,最后對全文進(jìn)行一個(gè)總結(jié)。
2安卓平臺介紹2.1安卓平臺介紹Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動設(shè)備,如智能手機(jī)和平板電腦,由Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。Android操作系統(tǒng)最初由AndyRubin開發(fā),主要支持手機(jī)。2005年8月由Google收購注資。2007年11月,Google與84家硬件制造商、軟件開發(fā)商及電信營運(yùn)商組建開放手機(jī)聯(lián)盟共同研發(fā)改良Android系統(tǒng)。隨后Google以Apache開源許可證的授權(quán)方式,發(fā)布了Android的源代碼。Android逐漸擴(kuò)展到平板電腦及其他領(lǐng)域上,如電視、數(shù)碼相機(jī)、游戲機(jī)等。Android的架構(gòu)圖如圖2.1所示。圖2.1Android的架構(gòu)圖Android的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣,采用了分層的架構(gòu)。從架構(gòu)圖看,Android分為四個(gè)層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫層和Linux內(nèi)核層。2.2安卓結(jié)構(gòu)具體分析1、應(yīng)用程序Android會同一系列核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是使用JAVA語言編寫的。2.、應(yīng)用程序框架開發(fā)人員也可以完全訪問核心應(yīng)用程序所使用的API框架。該應(yīng)用程序的架構(gòu)設(shè)計(jì)簡化了組件的重用;任何一個(gè)應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性)。同樣,該應(yīng)用程序重用機(jī)制也使用戶可以方便的替換程序組件。隱藏在每個(gè)應(yīng)用后面的是一系列的服務(wù)和系統(tǒng),其中包括;豐富而又可擴(kuò)展的視圖(Views),可以用來構(gòu)建應(yīng)用程序,它包括列表(Lists),網(wǎng)格(Grids),文本框(Textboxes),按鈕(Buttons),甚至可嵌入的web瀏覽器。內(nèi)容提供器(ContentProviders)使得應(yīng)用程序可以訪問另一個(gè)應(yīng)用程序的數(shù)據(jù)(如聯(lián)系人數(shù)據(jù)庫),或者共享它們自己的數(shù)據(jù)。資源管理器(ResourceManager)提供非代碼資源的訪問,如本地字符串,圖形,和布局文件(Layoutfiles)。通知管理器(NotificationManager)使得應(yīng)用程序可以在狀態(tài)欄中顯示自定義的提示信息?;顒庸芾砥?ActivityManager)用來管理應(yīng)用程序生命周期并提供常用的導(dǎo)航回退功能。3、系統(tǒng)運(yùn)行庫Android包含一些C/C++庫,這些庫能被Android系統(tǒng)中不同的組件使用。它們通過Android應(yīng)用程序框架為開發(fā)者提供服務(wù)。以下是一些核心庫:(1)系統(tǒng)C庫——一個(gè)從BSD繼承來的標(biāo)準(zhǔn)C系統(tǒng)函數(shù)庫Libc,它是專門為基于Embeddedlinux的設(shè)備定制的。(2)媒體庫——基于PacketVideoOpenCORE;該庫支持多種常用的音頻、視頻格式回放和錄制,同時(shí)支持靜態(tài)圖像文件。編碼格式包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG等。(3)SurfaceManager——對顯示子系統(tǒng)的管理,并且為多個(gè)應(yīng)用程序提供了2D和3D圖層的無縫融合。(4)LibWebCore——一個(gè)最新的Web瀏覽器引擎用,支持Android瀏覽器和一個(gè)可嵌入的Web視圖。4、安卓運(yùn)行時(shí)庫Android包含一個(gè)核心庫的集合,提供大部分在Java編程語言核心類庫中可用的功能。每一個(gè)android應(yīng)用程序是Dalvik虛擬機(jī)中的實(shí)例,運(yùn)行在自己的進(jìn)程中。Dalvik虛擬機(jī)被設(shè)計(jì)成,在一個(gè)設(shè)備可以高效地運(yùn)行多個(gè)虛擬機(jī)。Dalvik虛擬機(jī)可執(zhí)行文件格式是dex,dex格式是專為Dalvik設(shè)計(jì)的一種壓縮格式,適合內(nèi)存和處理器速度有限的系統(tǒng)。Dalvik虛擬機(jī)依賴于Linux內(nèi)核提供基本功能,如線程和底層管理。5、Linux內(nèi)核Android基于Linuxversion2.6內(nèi)核來提供系統(tǒng)的核心服務(wù),例如:安全機(jī)制,內(nèi)存管理,進(jìn)程管理,網(wǎng)絡(luò)堆棧和驅(qū)動模塊。該內(nèi)核還扮演著一個(gè)虛擬的中間層,該層介于硬件和其余的軟件堆棧[2]。2.3Android系統(tǒng)的四大組件在Android系統(tǒng)中,為我們提供了四大基本組件,每個(gè)組件是一個(gè)視圖,但是有些是可見的,有些是不可見的視圖,像Activity,ContentProvider是可見的視圖,Service和BroadcastReceiver是不可見的,它們只在系統(tǒng)的后臺運(yùn)行。下面分別介紹四大組件:(1)Activity簡介在Android系統(tǒng)中Activity提供可視化的用戶界面,一個(gè)Android應(yīng)用通常由多個(gè)Activity組成。多個(gè)Activity組成了Activity棧(Stack),當(dāng)前活動的Activity處于棧頂。Activity有自己的生命周期,由Android系統(tǒng)來控制。(2)Service簡介顧名思義Service就是運(yùn)行在后臺的一種服務(wù)程序,一般很少和用戶交互,因此沒有可視化界面定義一個(gè)Service類比較簡單,只要繼承Service類,實(shí)現(xiàn)其生命周期中的方法就可以了。一個(gè)定義好的Service必須在AndroidManifest.xml配置文件 注冊,通過<service>元素聲明才能使用.Service有自己的生命周期,我們可以調(diào)用startService()啟動一個(gè)Service或者bindService()方法來綁定一個(gè)存在的Service。(3)BroadcastReceiver簡介BroadcastReceiver顧名思義廣播接收器,它和事件處理機(jī)制類似,只不過事件處理機(jī)制是程序組件級別的(例如,某個(gè)按鈕的單擊事件),而廣播事件處理機(jī)制是系統(tǒng)級別的。到目前為止我們可以使用Intent來啟動一個(gè)程序組件,我們還可以通過使用sendBroadcast()方法來發(fā)起一個(gè)系統(tǒng)級別的事件廣播來傳遞消息。我們可以在你的應(yīng)用程序中實(shí)現(xiàn)BroadcastReceiver來監(jiān)聽和響應(yīng)這些廣播的Intent。Intent(意圖)主要是解決Android應(yīng)用的各項(xiàng)組件之間的通訊。Intent負(fù)責(zé)對應(yīng)用中一次操作的動作、動作涉及數(shù)據(jù)、附加數(shù)據(jù)進(jìn)行描述,Android則根據(jù)此Intent的描述,負(fù)責(zé)找到對應(yīng)的組件,將Intent傳遞給調(diào)用的組件,并完成組件的調(diào)用。因此,Intent在這里起著一個(gè)媒體中介的作用,專門提供組件互相調(diào)用的相關(guān)信息,實(shí)現(xiàn)調(diào)用者與被調(diào)用者之間的解耦。例如,在一個(gè)聯(lián)系人維護(hù)的應(yīng)用中,當(dāng)我們在一個(gè)聯(lián)系人列表屏幕(假設(shè)對應(yīng)的Activity為ListActivity)上,點(diǎn)擊某個(gè)聯(lián)系人后,希望能夠跳出此聯(lián)系人的詳細(xì)信息屏幕(假設(shè)對應(yīng)的Activity為detailActivity)。為了實(shí)現(xiàn)這個(gè)目的,ListActivity需要構(gòu)造一個(gè)Intent,這個(gè)Intent用于告訴系統(tǒng),我們要做“查看”動作,此動作對應(yīng)的查看對象是“某聯(lián)系人”,然后調(diào)用startActivity(Intentintent),將構(gòu)造的Intent傳入,系統(tǒng)會根據(jù)此Intent中的描述,到ManiFest中找到滿足此Intent要求的Activity,系統(tǒng)會調(diào)用找到的Activity,即為detailActivity,最終傳入Intent,detailActivity則會根據(jù)此Intent中的描述,執(zhí)行相應(yīng)的操作。(4)ContentProvider簡介ContentProvider用來保存和檢索數(shù)據(jù),并且使應(yīng)用程序之間相互訪問數(shù)據(jù)成為可能。它是跨應(yīng)用程序共享數(shù)據(jù)的唯一方法。Android為常用的數(shù)據(jù)類型(如:音視頻、圖片和聯(lián)系方式等)提供了大量的ContentProvider。它們被定義在Avider包下面。通過這樣定義好的ContentProvider我們可以方便的進(jìn)行數(shù)據(jù)操作。當(dāng)然我們必須擁有適當(dāng)?shù)臋?quán)限。我們也可以自己來定ContentProvider共享我們的數(shù)據(jù),方便用戶的訪問[4]。2.4安卓開發(fā)環(huán)境搭建2.4.1Java環(huán)境搭建Android支持WindowsXP以上操作系統(tǒng)。首先,需要有Java環(huán)境。方法很簡單。第一步,登陸,下載最新版本的jdk安裝jdk和jre兩個(gè)部分。選擇目錄,安裝(最好將兩部分放在同一個(gè)盤符)。點(diǎn)擊下一步即可。我這里安裝在C盤目錄下。第二步,需要配置環(huán)境變量。右擊“我的電腦”,在彈出的窗口中選擇屬性,在左邊高級系統(tǒng)設(shè)置點(diǎn)擊環(huán)境變量按鈕,點(diǎn)擊右下角的新建按鈕變量名:JAVA_HOME,值C:\jdk(你的jdk安裝目錄),點(diǎn)擊確定輸入。以同樣的方法新建變量名為;CLASSPATH,值為:.;%JAVA_HOME%\lib。注意,點(diǎn)號表示當(dāng)前目錄,不能省略。如圖2.2圖2.2環(huán)境變量配置然后在系統(tǒng)變量中找到“path”,并點(diǎn)擊修改,在其對應(yīng)的最后面追加“%JAVA_HOME%\bin;”,一直點(diǎn)擊確定按鈕,直到所有的窗口關(guān)閉。如圖2.3。這樣Java的環(huán)境搭建完畢。打開“運(yùn)行”窗口,輸入CMD命令,在提示符窗口中輸入java-version,如果顯示如圖2.4的信息表明搭建成功。圖2.3環(huán)境變量配置圖2.4環(huán)境搭建成功顯示信息2.4.2安裝Eclipse開發(fā)工具Eclipse的安裝比較簡單,登錄Eclipse官網(wǎng),下載EclipseIDEforJavaDevelopers。直接解壓就可以了。2.4.3下載安裝SDK首先,到SDK官方網(wǎng)站下載SDK包,然后解壓。雙擊SDKManager.exe顯示如圖2.5,下載所需要的組件圖2.5SDK下載組件界面2.4.4安裝ADT插件在eclipse中安裝插件,打開eclipse,點(diǎn)擊help>InstallnewSoftware進(jìn)入后,點(diǎn)擊add,命名及點(diǎn)擊Archive選擇你下載的ADT壓縮包,點(diǎn)擊OK,會解析出該插件的全部可用內(nèi)容,全選(selectall),點(diǎn)擊下一步...安裝時(shí)需要一定時(shí)間,在安裝的過程中會出現(xiàn)一些提示,點(diǎn)擊允許即可,安裝完ADT插件后,點(diǎn)擊window-->preference,發(fā)現(xiàn)左側(cè)列表上多了一項(xiàng)android,點(diǎn)擊android會提示錯(cuò)誤,是因?yàn)檫€沒有把SDK關(guān)聯(lián)到ADT插件上,添加SDK目標(biāo)位置,如圖2.6。圖2.6添加SDK目標(biāo)文件夾到這里,Android的開發(fā)環(huán)境就搭建完成了。然后創(chuàng)建一個(gè)安卓模擬器就可以做安卓開發(fā)了如圖2.7。圖2.7安卓模擬器界面2.5AndroidFeatures特性Android系統(tǒng)有如下的幾大特性:(1)應(yīng)用程序框架支持組件的重用與替換。
(2)Dalvik虛擬機(jī)專門為移動設(shè)備做了優(yōu)化。
(3)內(nèi)部集成瀏覽器該瀏覽器基于開源的WebKit引擎。
(4)優(yōu)化的圖形庫包括2D和3D圖形庫,3D圖形庫基于OpenGLES。
(5)SQLite用作結(jié)構(gòu)化的數(shù)據(jù)存儲。
(6)多媒體支持包括常見的音頻、視頻和靜態(tài)印象文件格式(如MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF)。
(7)GSM電話(依賴于硬件)。
(8)藍(lán)牙Bluetooth,EDGE,3G,andWiFi(依賴于硬件)。
(9)照相機(jī),GPS,指南針,和加速度計(jì)(依賴于硬件)。
(10)豐富的開發(fā)環(huán)境包括設(shè)備模擬器,調(diào)試工具,內(nèi)存及性能分析圖表,和Eclipse集成開發(fā)環(huán)境插件。2.6數(shù)據(jù)存儲方式在播放器正常運(yùn)行時(shí),由于各界面存在相互跳轉(zhuǎn),為了避免數(shù)據(jù)在界面跳轉(zhuǎn)的過程中丟失,我們需要將一些數(shù)據(jù)進(jìn)行臨時(shí)存儲或者永久存儲。Android作為一種手機(jī)操作系統(tǒng),提供了如下幾種存取數(shù)據(jù)的方式:Preferenc(配置)、File(文件)、SQLite數(shù)據(jù)和網(wǎng)絡(luò)。另外,在Android中各個(gè)應(yīng)用程序組件之間是相互獨(dú)立的,彼此的數(shù)據(jù)不能共享。為了實(shí)現(xiàn)數(shù)據(jù)的共享,Android提供了ContentProvider組件來實(shí)現(xiàn)應(yīng)用程序之間數(shù)據(jù)的共享。2.6.1SharedPreferencesPreferencePreference提供了一種輕量級的數(shù)據(jù)存取方法,一般數(shù)據(jù)比較少,一些簡單的配置信息。它以“鍵-值”(是一個(gè)Map)對的方式,將數(shù)據(jù)保存在一個(gè)XML配置文件中使用到的接口(詳細(xì)內(nèi)容見文檔)android.content.SharedPreferences提供了保存數(shù)據(jù)的方法,android.content.SharedPreferences.Editor提供了獲得數(shù)據(jù)的方法。2.6.2File存儲方式我們可以將一些數(shù)據(jù)直接以文件的形式保存在設(shè)備中。例如,一些文本文件、PDF文件、音視頻文件和圖片等。Android提供了文件讀寫的方法:Context.openFileInput()獲得標(biāo)準(zhǔn)Java文件輸入流(FileInputStream),Context.openFileOutput()獲得標(biāo)準(zhǔn)Java文件輸出流(FileOutputStream),Resources.openRawResource(R.raw.myDataFile)方法返回InputStream。2.6.3SQLiteDatabase數(shù)據(jù)庫SQLite是一個(gè)嵌入式數(shù)據(jù)庫引擎,針對內(nèi)存等資源有限的設(shè)備(如手機(jī)、PDA、MP3)提供的一種高效的數(shù)據(jù)庫引擎SQLite數(shù)據(jù)庫不像其它的數(shù)據(jù)庫(如:Oracle),它沒有服務(wù)器進(jìn)程。所有的內(nèi)容包含在同一個(gè)單文件中。該文件是跨平臺的可以自由拷貝?;谄渥陨淼南忍靸?yōu)勢,SQLite在嵌入式領(lǐng)域得到了廣泛應(yīng)用。(1)SQLiteDatabase類SQLiteDatabase代表一個(gè)數(shù)據(jù)庫對象,提供了操作數(shù)據(jù)庫的一些常用方法如表2.8。表2.8操作數(shù)據(jù)庫的常用方法方法名稱方法描述OpenonCreatDatabase(Stringpath,SQLiteDatabase.CusorFactoryfactory)打開或者創(chuàng)建數(shù)據(jù)庫Insert(Stringtable,StringnullColumHack,ContentValuesvalues)添加一條記錄Delete(Stringtable,StringwhereClause,String[]whereArgs)刪除一條記錄Query(Stringtable,String[]colums,Stringselection,String[]selectionArgs,StringgoupBy,Stringhaving,StringorderBy)查詢記錄Update(Stringtable,ContentValues,StingwhereClause,String[]whereArgs)修改記錄exeSQL(Stringsql)執(zhí)行一條SQL語句Close()關(guān)閉數(shù)據(jù)庫(2)SQLiteOpenHelper類SQLiteOpenHelper是SQLiteDatabase的一個(gè)幫助類,用來管理數(shù)據(jù)庫的創(chuàng)建和版本更新。一般的用法是定義一個(gè)類繼承之,并實(shí)現(xiàn)其兩個(gè)抽象方法onCreate(SQLiteDatabasedb)和onUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion)兩個(gè)抽象方法來創(chuàng)建和更新數(shù)據(jù)庫,一些常用方法如表2.9。表2.9更新數(shù)據(jù)庫常用方法方法名稱方法描述SQLiteOpenHelper(Contextcontext,Stringname,SQLiteDatabase.CurorFactoryfactory,intversion)構(gòu)造方法,一般是傳遞一個(gè)要?jiǎng)?chuàng)建數(shù)據(jù)庫稱name參數(shù)onCreate(SQLiteDatabasedb)創(chuàng)建數(shù)據(jù)庫是調(diào)用onUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion)版本更新時(shí)調(diào)用getReadableDatabase()創(chuàng)建或打開一個(gè)只讀數(shù)據(jù)庫getWritableDatabase()創(chuàng)建或者打開一個(gè)讀寫數(shù)據(jù)庫/data/data/package/shared_prefs/Android的三種數(shù)據(jù)存儲方式則讓我們可以輕松方便的進(jìn)行程序編寫和數(shù)據(jù)的訪問,更不會讓不該消失的數(shù)據(jù)消失,這對我們進(jìn)行程序書寫有很大我?guī)椭?data/data/package/shared_prefs/2.7Android工程程序結(jié)構(gòu)Android工程基本結(jié)構(gòu)目錄包括:src(源代碼)、gen(Android系統(tǒng)自動生成的常量)、Res(資源文件):主要存放程序界面的布局配置(.xml)文件和圖片資源。AndroidMainfes.xml(下節(jié)介紹)是四大組件的驅(qū)動配置文件,有它的存在,Android程序的四大組件才可以正常的跳轉(zhuǎn)。Android資源的類型和布局(表2.10)。表2.10Android資源的類型和布局目錄結(jié)構(gòu)資源類型res/anim/XMLd動畫文件res/drawable/一些位圖文件res/layout/xml布局文件res/value/各種xml資源文件Arrays.xml:XML數(shù)據(jù)文件Colors.xml:XML顏色文件Dimens.xml:XML尺寸文件Styles.xml:XML樣式文件res/xml/任意的XML文件res/raw/直接拷到設(shè)備中的原生文件res/menr/XML菜單文件2.8AndroidManifest.xml文件Android系統(tǒng)的任何一個(gè)程序啟動都需要AndroidManifest.xml來啟動程序,任何一個(gè)新建的工程目錄都會自動生成一個(gè)AndroidManifest.xml文件,此配置文件是整個(gè)程序能夠正常運(yùn)行的核心,它里面包含了AndroidSDK的版本,程序運(yùn)行的默認(rèn)Activity,當(dāng)程序中的任何一個(gè)組件觸發(fā)事件后,系統(tǒng)都會自動的去AndroidManifest.xml中尋找標(biāo)識來作出相應(yīng)的操作。任何一個(gè)AndroidManifest.Xml文件的格式都應(yīng)為:<?xmlversion="1.0"encoding="utf-8"?><manifest><application><activity><intent-filter><action/><category/></intent-filter></activity></application><uses-sdk/><uses-permission/></manifest>Android系統(tǒng)有一個(gè)編碼的規(guī)定,支持的編碼是"utf-8",當(dāng)程序中出現(xiàn)亂碼是,我們須將其編碼格式轉(zhuǎn)化為"utf-8".在AndroidManifest.xml中會在第一行聲明一句:<?xmlversion="1.0"encoding="utf-8"?>。它是該系統(tǒng)支持的版本和編碼。在第二行定義了我們需使用的架構(gòu),該架構(gòu)來自xmlns:Android=http://schemas.A/apk/res/Android。Xmlns(XMLnamespace)是一個(gè)命名空間,它就像一條河的源頭一樣能讓我們找到系統(tǒng)架構(gòu),每一個(gè)配置文件必須有這個(gè)xmlns,否則程序中的所使用的所有資源將無法找到。在application元素我們定義Android:icon="@drawable/icon"Android:label="@string/app_name",Android:icon是程序在手機(jī)中顯示的圖片,我們運(yùn)用@drawable/icon表示了對res/drawable目錄下的icon.png的引用。@string/app_name表示了對res/value目錄下string.Xml中定義的app_name參數(shù)的引用。因?yàn)橄到y(tǒng)首先要啟動的Activity是C_MusicPlayerActivity,所以文件如下:<activityAndroid:name=".C_MusicPlayerActivity"><intent-filter><actionAndroid:name="Aent.action.MAIN"/><categoryAndroid:name="Aent.category.LAUNCHER"/></intent-filter></activity>在intent-filter選項(xiàng)中,有action和category等等屬性,我們需要定義action的值為Aent.action.MAIN,category的值為Aent.category.LAUNCHER,它們是系統(tǒng)的值,程序在解析到這些常用后就可以確定首先要啟動的Activity。當(dāng)我們需要通過一個(gè)組件觸發(fā)另一個(gè)組件時(shí),我們將設(shè)定action和category的其它屬性值,系統(tǒng)會根據(jù)我們設(shè)定的屬性值去AndroidManifest.Xml的application中尋找標(biāo)識,任何一個(gè)Activity的action和category是唯一,所以程序在任何時(shí)候都能唯一啟動一個(gè)Activity,這樣,不同的Activity之間的跳轉(zhuǎn)就實(shí)現(xiàn)了。在AndroidManifest.Xml中有一個(gè)根結(jié)點(diǎn)<uses-sdk>,它是我們需要定義的ADT版本,例如我們將其值設(shè)定為Android:minSdkVersion="10",則表示此Android工程所用的版本為2.3,Android還有1.1、1.5、1.6、2.0、2.1、2.2、2.3、3.0、4.0這幾個(gè)版本。如果我們需要對網(wǎng)絡(luò)進(jìn)行訪問,比如打開一個(gè)網(wǎng)頁,剛我還需要設(shè)置一個(gè)網(wǎng)絡(luò)訪問權(quán)限uses-permission,將其的值設(shè)置為Android:name="Android.permission.INTERNET,我們就可以訪問網(wǎng)絡(luò)了。當(dāng)然uses-permission還有很多其它的權(quán)限,例如GPS定位權(quán)限瀏覽器數(shù)據(jù)存取權(quán)限com.Android.browser.permission.READ_HISTORY_BOOKMARKS等等。當(dāng)程序的任何一個(gè)組件要用到時(shí),都必須在AndroidManifest.Xml文件中聲明。四大組件要使用前都需要聲明,其聲明方式如下:<service></service><provider></provider><activity></activity><receiver></receiver>其中聲明provider時(shí)還需要聲明其授權(quán)authorities。每個(gè)組件里面還有很多的屬性,會根據(jù)程序的具體需要定義不同的屬性。過濾器intent-filter有兩種啟動方式來啟動界面。(1)顯示方式顯示方式是在代碼中的直接啟動組件,啟動時(shí)會聲明Intent,在它的構(gòu)造方法Intent(組件1,組件2)中直接指定一個(gè)組件的名字,然后調(diào)用方法startIntent(intent)以啟動指定的組件。(2)隱式方式隱式方式是通過過濾器來過濾完成的,啟動的組件必須滿足action和category的條件才能夠啟動該組件。這些屬性是在AndroidManifest.Xml文件中聲明的。兩種啟動方式都可以通過程序setAction(ACTION常量)和startActivity(intent)或配置文件兩種方式來實(shí)現(xiàn)組件的跳轉(zhuǎn)。2.9安卓平臺的優(yōu)勢(1)開放性在優(yōu)勢方面,Android平臺首先就是其開發(fā)性,開發(fā)的平臺允許任何移動終端廠商加入到Android聯(lián)盟中來。顯著的開放性可以使其擁有更多的開發(fā)者,隨著用戶和應(yīng)用的日益豐富,一個(gè)嶄新的平臺也將很快走向成熟。開發(fā)性對于Android的發(fā)展而言,有利于積累人氣,這里的人氣包括消費(fèi)者和廠商,而對于消費(fèi)者來講,最大的受益正是豐富的軟件資源。開放的平臺也會帶來更大競爭,如此一來,消費(fèi)者將可以用更低的價(jià)位購得心儀的手機(jī)。(2)不受束縛在過去很長的一段時(shí)間,特別是在歐美地區(qū),手機(jī)應(yīng)用往往受到運(yùn)營商制約,使用什么功能接入什么網(wǎng)絡(luò),幾乎都受到運(yùn)營商的控制。自從2007年iPhone上市后,用戶可以更加方便地連接網(wǎng)絡(luò),運(yùn)營商的制約減少。隨著EDGE、HSDPA這些2G至3G移動網(wǎng)絡(luò)的逐步過渡和提升,手機(jī)隨意接入網(wǎng)絡(luò)已不是運(yùn)營商口中的笑談。(3)豐富的硬件這一點(diǎn)還是與Android平臺的開放性相關(guān),由于Android的開放性,眾多的廠商會推出千奇百怪,功能特色各具的多種產(chǎn)品。功能上的差異和特色,卻不會影響到數(shù)據(jù)同步、甚至軟件的兼容,如同從諾基亞Symbian風(fēng)格手機(jī)一下改用蘋果iPhone,同時(shí)還可將Symbian中優(yōu)秀的軟件帶到iPhone上使用、聯(lián)系人等資料更是可以方便地轉(zhuǎn)移。(4)方便開發(fā)Android平臺提供給第三方開發(fā)商一個(gè)十分寬泛、自由的環(huán)境,不會受到各種條條框框的阻擾,可想而知,會有多少新穎別致的軟件會誕生。但也有其兩面性,血腥、暴力、情色方面的程序和游戲如何控制正是留給Android難題之一。(5)Google應(yīng)用在互聯(lián)網(wǎng)的Google已經(jīng)走過10年度歷史,從搜索巨人到全面的互聯(lián)網(wǎng)滲透,Google服務(wù)如地圖、郵件、搜索等已經(jīng)成為連接用戶和互聯(lián)網(wǎng)的重要紐帶,而Android平臺手機(jī)將無縫結(jié)合這些優(yōu)秀的Google服務(wù)。 3需求分析軟件需求分析是軟件生存期中重要的一步,也是決定性的一步。需求分析是軟件定義時(shí)期的最后一個(gè)階段,它的基本任務(wù)是準(zhǔn)確地回答“系統(tǒng)必須做什么”這個(gè)問題,深入描述軟件的功能和性能的需求[9]。在這一節(jié)中主要就是圍繞“Android開發(fā)平臺的音樂播放器系統(tǒng)必須做什么”這個(gè)問題來分析說明的。3.1軟件目標(biāo)本系統(tǒng)屬于用戶常用的音樂播放器??梢苑奖阌脩羝綍r(shí)對音樂文件的操作。本系統(tǒng)應(yīng)達(dá)到以下目標(biāo):(1)軟件采用人機(jī)交互的方式,界面美觀友好,操作靈活、方便、富有個(gè)性化。(2)能夠?qū)σ魳肺募M(jìn)行有效的管理。(3)系統(tǒng)應(yīng)最大限度地實(shí)現(xiàn)易維護(hù)性和易操作性。3.2軟件的可行性研究3.2.1經(jīng)濟(jì)上的可行性Android
是Google歷經(jīng)數(shù)年和投資數(shù)億美元開發(fā)出來的智能手機(jī)系統(tǒng),是基于Linux內(nèi)核的操作系統(tǒng),是Google公司在2007年11月5日公布的手機(jī)操作系統(tǒng)。隨著各大移動終端生產(chǎn)商大力開發(fā)和生產(chǎn)基于
Android
的移動智能設(shè)備,
Android迅速得到業(yè)界和社會的認(rèn)可,并成為整個(gè)產(chǎn)業(yè)的熱點(diǎn),基于
Android
平臺的各類人才逐漸成為各大企業(yè)競相爭奪的焦點(diǎn)。而且
Android
是一個(gè)開放的系統(tǒng),不管是企業(yè)還是個(gè)人都可以參與來表達(dá)自己的創(chuàng)意和想法。3.2.2技術(shù)上的可行性Google發(fā)起了圍繞
Android
的組織——開放手機(jī)聯(lián)盟,其英文全稱為“OpenHandsetAlliance”。它采用了軟件堆層(softwarestack,又名以軟件疊層)的架構(gòu),主要分為三部分。底層Linux內(nèi)核只提供基本功能;其他的應(yīng)用軟件則由各公司自行開發(fā),部分程序以Java編寫。3.2.3操作上的可行性本系統(tǒng)采用Android框架,可以在eclipse中安裝Android開發(fā)插件,使用Android模擬器也可以使用任意Android終端。模擬器和真正的Android手機(jī)沒有太大區(qū)別,人們對手機(jī)操作早已熟悉。3.3功能需求3.3.1用例圖及用例描述功能需求定義了開發(fā)人員必須實(shí)現(xiàn)的軟件功能,使得用戶能完成他們的任務(wù),從而滿足了用戶的業(yè)務(wù)需求。用戶需求文檔描述了用戶使用產(chǎn)品必須要完成的任務(wù)。針對音樂播放器分別對音樂播放功能進(jìn)行詳細(xì)的調(diào)研和分析,總結(jié)出如用戶需求信息,其用例圖如圖3.1所示。圖3.1播放器用例圖音樂播放器的用例描述如下:(1)用例名稱:播放參與者:用戶目標(biāo):使得用戶可以播放在播放列表中選中的歌曲前置條件:播放器正在運(yùn)行基本事件流:1.用戶單擊“播放”按鈕2.播放器將播放列表中的當(dāng)前的歌曲(2)用例名稱:暫停參與者:用戶目標(biāo):使得用戶可以暫停正在播放的歌曲前置條件:歌曲正在播放且未停止和暫停基本事件流:1.用戶單擊“暫?!卑粹o2.播放器將暫停當(dāng)前的歌曲(3)用例名稱:上一首/下一首參與者:用戶目標(biāo):使得用戶可以聽上一首或下一首歌曲前置條件:歌曲正在播放或暫?;臼录鳎?.用戶單擊“上一首或下一首”按鈕2.播放器將播放上一首或下一首歌曲(4)用例名稱:播放列表參與者:用戶目標(biāo):使得用戶可以進(jìn)入播放清單前置條件:程序在運(yùn)行基本事件流:1.用戶單擊“清單”按鈕2.播放器進(jìn)入播放列表(5)用例名稱:歌詞顯示參與者:用戶目標(biāo):使得程序進(jìn)入播放器歌詞設(shè)置狀態(tài)前置條件:程序運(yùn)行在播設(shè)定界面基本事件流:1.用戶單擊“歌詞開關(guān)按鈕”按鈕2.播放器顯示或關(guān)閉歌詞3.3.2音樂播放器的時(shí)序圖播放器對象之間的交互情況如圖3.2所示。圖3.2音樂播放器的時(shí)序圖3.3.3音樂播放器流程圖 播放器工作流程圖如圖3.3所示。圖3.3音樂播放器流程圖3.4軟件規(guī)格說明隨著手機(jī)的功能的不斷增加,音樂播放功能已經(jīng)是時(shí)下各大手機(jī)廠商手機(jī)方案中的標(biāo)配了。那么我們要做出怎樣的一款手機(jī)才能滿足消費(fèi)者的需求呢?僅僅能夠播放MP3音樂文件是遠(yuǎn)遠(yuǎn)不夠的。通過我們對市場的調(diào)研,總結(jié)出以下設(shè)計(jì)思路,這些思路應(yīng)該是我們MP3播放器的亮點(diǎn):絢麗的界面,強(qiáng)大的功能,簡單的操作。根據(jù)以上的設(shè)計(jì)思路,我們做出了以下詳細(xì)的定義:(1)播放音樂文件。(2)播放文件時(shí)實(shí)現(xiàn)暫停,停止。(3)播放文件時(shí)支持前一首或后一首音樂文件與當(dāng)前音樂文件的切換。(4)播放文件時(shí)支持進(jìn)度條的顯示。(5)播放音樂文件時(shí),支持背景動畫。(6)主播放界面支持播放方式的選擇。(7)主播放界面支持文件序號及文件名稱的顯示。(9)支持文件列表。(10)支持歌詞文件同步。3.5運(yùn)行環(huán)境操作系統(tǒng):Android手機(jī)基于Linux操作系統(tǒng)。支持環(huán)境:Android4.1.2版本。開發(fā)環(huán)境:EclipseSDKVersion:4.2.2。4項(xiàng)目實(shí)現(xiàn)4.1歡迎界面在歡迎界面模塊的設(shè)計(jì)中,應(yīng)用了LinearLayout布局和Animation效果。歡迎界面模塊運(yùn)行結(jié)果如圖4.1所示。圖4.1音樂播放器歡迎界面(1)頁面的設(shè)計(jì)整體采用線性布局(LinearLayout),并且有一個(gè)圖像顯示控件ImageView還有有Animation動畫效果。頁面布局xml文件具體如下:<LinearLayoutxmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent" android:layout_height="fill_parent"><ImageViewandroid:id="@+id/iv1" android:background="@drawable/loading_bkg" android:layout_width="fill_parent" android:layout_height="fill_parent"/></LinearLayout>(2)代碼實(shí)現(xiàn)歡迎界面模塊主要是用于給用戶一種友好的體驗(yàn),讓用戶較容易接受本軟件。歡迎界面的主要代碼如下:publicclassLoadingActivityextendsActivity{ /**Calledwhentheactivityisfirstcreated.*/ protectedvoidonCreate(BundlesavedInstanceState){ //TODOAuto-generatedmethodstub super.onCreate(savedInstanceState); //設(shè)置全屏顯示 requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.loading); ImageViewiv1=(ImageView)findViewById(R.id.iv1); Animationanimation=(AnimationSet)AnimationUtils.loadAnimation(this, R.anim.rotary_magnify); iv1.startAnimation(animation); newHandler().postDelayed(newRunnable(){ publicvoidrun(){ //TODOAuto-generatedmethodstub Intentin=newIntent(LoadingActivity.this, C_MusicPlayerActivity.class); startActivity(in); finish(); } },3700); }}4.2主界面Android的每一個(gè)可視化界面,都有其的唯一的布局配置文件,該文件里面有各種布局方式,和各種資源文件如圖像,文字,顏色的引用,程序在運(yùn)行時(shí),可以通過代碼對各配置文件進(jìn)行讀取。這樣就可以形成不同的可視化界面和炫麗的效果。播放器主界面是一個(gè)Activity,Android工程在每個(gè)activity啟動的時(shí)候會首先執(zhí)行Oncreate()方法,如下代碼: PublicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.main;}該方法主要執(zhí)行界面的初始化操作,Activity有個(gè)設(shè)置布局的方法:Context.setContentView(layoutResID),參數(shù)為資源ID,該Id在工程目錄res/layout下,主界面布局文件名為main。歡迎界面結(jié)束以后進(jìn)入主界面圖4.2所示,主界面主要采用相對布局(RelativeLayout)。圖4.2主界面4.2.1播放音軌SeekBar在main.xml文件中,SeekBar的代碼如下:<SeekBar android:id="@+id/player_seekbar" android:layout_width="220dip" android:layout_height="wrap_content" android:progressDrawable="@drawable/seekbar_style" android:background="@drawable/play_progress_background" android:thumb="@drawable/thumb" android:progress="0" android:max="0"/>上面代碼中有參數(shù)android:thumb="@drawable/thumb"為音軌游標(biāo)的圖片資源a
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年子女權(quán)益保障協(xié)議:理性離婚與明確撫養(yǎng)權(quán)分配合同
- 2025年城市綜合體安全保障服務(wù)合同規(guī)范
- 2025遠(yuǎn)程醫(yī)療系統(tǒng)互聯(lián)互通測試與安全評估合同
- 餐飲油煙排放達(dá)標(biāo)改造項(xiàng)目設(shè)備供應(yīng)與安裝一體化服務(wù)合同
- 2025年度醫(yī)療器械區(qū)域總代理合同(含線上線下營銷策略)
- 2025年高品質(zhì)蔬菜直供與智能冷鏈物流系統(tǒng)租賃服務(wù)合同
- 全息虛擬駕駛體驗(yàn)中心場地及車輛設(shè)備租賃合同
- 幼兒園小班語言教學(xué)方案參考范本(7篇)
- 2025年倉儲中心建設(shè)合同文件
- 2025典當(dāng)行借款合同模板
- LNG燃?xì)獍踩R培訓(xùn)內(nèi)容課件
- 2025年金蝶云星辰初級考試題庫
- 第五屆全國應(yīng)急管理普法知識競賽題庫及答案(8.4)
- 2025年經(jīng)濟(jì)人員面試題及答案
- 2025年國際技術(shù)許可合同合同范本
- 銷售管理辦法細(xì)則
- 防火宣傳課件
- 四川阿壩州郵政招聘試題帶答案分析2024年
- 2026屆高考語文總復(fù)習(xí)(第1輪)第一部分 語法、邏輯、表達(dá)技巧第三章 第1節(jié) 表達(dá)方式
- 2025至2030中國慢性病管理行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報(bào)告
- 疼痛的中醫(yī)治療課件
評論
0/150
提交評論