版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計(jì)報(bào)告書</b></p><p> 課程名稱: 操作系統(tǒng)原理 </p><p> 題 目: 基于Android系統(tǒng)的音樂播放器設(shè)計(jì)與實(shí)現(xiàn) </p><p> 2012 年 7 月 5 日</p><p><b> 課程設(shè)計(jì)任務(wù)書<
2、/b></p><p> 設(shè)計(jì)題目:基于Android 系統(tǒng)的音樂播放器設(shè)計(jì)與實(shí)現(xiàn)</p><p><b> 初始條件:</b></p><p> Linux操作系統(tǒng),Android開發(fā)環(huán)境,Java編譯環(huán)境,SQLite數(shù)據(jù)庫</p><p> 要求完成的主要任務(wù):</p><p>
3、;<b> 主要任務(wù):</b></p><p> 現(xiàn)今社會(huì)生活緊張,而欣賞音樂是其中最好的舒緩壓力的方式之一,本項(xiàng)目的目的是開發(fā)一個(gè)可以播放主流音樂文件格式的播放器的播放功能模塊,要求音樂播放器能夠播放Mp3,Wav多種格式的音樂文件,能夠控制播放,暫停,停止,上一曲,下一曲,能夠調(diào)節(jié)音量,能播放RMVB格式的視頻文件,此外,還能支持中文、英文等語言界面。要求視覺外觀美觀,操作簡單。 &
4、lt;/p><p> 本項(xiàng)目是一款基于Android手機(jī)平臺(tái)的音樂播放器的子模塊,使Android手機(jī)擁有個(gè)性的多媒體播放器,使手機(jī)顯得更生動(dòng)靈活化,與人們更為接近,讓手機(jī)主人隨時(shí)隨地處于音樂視頻的旋律之中。使人們的生活更加多樣化。也使設(shè)計(jì)者更加熟練Android的技術(shù)和其它在市場(chǎng)上的特點(diǎn)</p><p> 設(shè)計(jì)報(bào)告撰寫格式要求:</p><p> 1設(shè)計(jì)題目與要
5、求 2 設(shè)計(jì)思想</p><p> 3系統(tǒng)結(jié)構(gòu) 4 數(shù)據(jù)結(jié)構(gòu)的說明和模塊的算法流程圖</p><p> 5 使用說明書(即用戶手冊(cè)):內(nèi)容包含如何登錄、退出、讀、寫等操作說明</p><p> 6 運(yùn)行結(jié)果和結(jié)果分析(其中包括實(shí)驗(yàn)的檢查結(jié)果、程序的運(yùn)行情況)</p><p> 7 自我評(píng)價(jià)與總結(jié) 8 附錄:程序清單,注
6、意加注釋(包括關(guān)鍵字、方法、變量等),在每個(gè)模塊前加注釋; </p><p><b> 時(shí)間安排 </b></p><p> 7月1日 布置課程設(shè)計(jì)任務(wù);分配題目后,查閱資料、 準(zhǔn)備程序;</p><p> 7月 2~7月4 日上機(jī)調(diào)試程序、書寫課程設(shè)計(jì)報(bào)告;</p><p> 7月5 日 提交課程設(shè)計(jì)報(bào)告及相關(guān)
7、文檔。</p><p> 基于Android平臺(tái)的音樂播放器的播放控制功能設(shè)計(jì) </p><p> 摘要Android簡介:</p><p> Android是一種以Linux為基礎(chǔ)的開放源碼操作系統(tǒng),主要使用于便攜設(shè)備。目前尚未有統(tǒng)一中文名稱,中國大陸地區(qū)較多人使用“安卓”或“安致”。Android操作系統(tǒng)最初由Andy Rubin開發(fā),最初主要支持手機(jī)。2
8、005年由Google收購注資,并組建開放手機(jī)聯(lián)盟開發(fā)改良,逐漸擴(kuò)展到平板電腦及其他領(lǐng)域上。</p><p> Android平臺(tái)五大優(yōu)勢(shì)特色:</p><p><b> 1、開放性</b></p><p> 2、掙脫運(yùn)營商的束縛</p><p><b> 3、豐富的硬件選擇</b><
9、/p><p> 4、不受任何限制的開發(fā)商</p><p> 5、無縫結(jié)合的Google應(yīng)用 </p><p> 圖 Android 軟件體系結(jié)構(gòu)圖</p><p> Android作為一個(gè)移動(dòng)設(shè)備的平臺(tái),其軟件層次結(jié)構(gòu)包括了一個(gè)操作系統(tǒng)(OS),中間件(MiddleWare)和應(yīng)用程序(Application)。根據(jù)Android的軟件框
10、圖,其軟件層次結(jié)構(gòu)自下而上分為以下幾個(gè)層次:</p><p> 第一、操作系統(tǒng)層(OS)</p><p> 第二、各種庫(Libraries)和Android 運(yùn)行環(huán)境(RunTime)</p><p> 第三、應(yīng)用程序框架(Application Framework)</p><p> 第四、應(yīng)用程序(Application)<
11、;/p><p><b> 1、設(shè)計(jì)題目與要求</b></p><p> 題目:基于Android平臺(tái)的音樂播放器的播放控制功能設(shè)計(jì)</p><p> 要求:現(xiàn)今社會(huì)生活緊張,而欣賞音樂是其中最好的舒緩壓力的方式之一,本項(xiàng)目的目的是開發(fā)一個(gè)可以播放主流音樂文件格式的播放器的播放功能模塊,要求音樂播放器能夠播放Mp3,Wav多種格式的音樂文件,能
12、夠控制播放,暫停,停止,上一曲,下一曲,能夠調(diào)節(jié)音量,能播放RMVB格式的視頻文件,此外,還能支持中文、英文等語言界面。要求視覺外觀美觀,操作簡單。 </p><p> 本項(xiàng)目是一款基于Android手機(jī)平臺(tái)的音樂播放器的子模塊,使Android手機(jī)擁有個(gè)性的多媒體播放器,使手機(jī)顯得更生動(dòng)靈活化,與人們更為接近,讓手機(jī)主人隨時(shí)隨地處于音樂視頻的旋律之中。使人們的生活更加多樣化。也使設(shè)計(jì)者更加熟練Android的
13、技術(shù)和其它在市場(chǎng)上的特點(diǎn)。</p><p><b> 2、設(shè)計(jì)思想</b></p><p> 要實(shí)現(xiàn)這個(gè)音樂播放器。首先應(yīng)該考慮到的就是他的功能,要有后臺(tái)播放功能以及顯示正在播放的文件和把手機(jī)中的音樂文件以列表的形式顯示在手機(jī)上,這就要使用到listview類。</p><p> 另外在本地歌曲列表和正在播放的歌曲之間要進(jìn)行動(dòng)態(tài)菜單的跳轉(zhuǎn)
14、故而想到用tabhost這個(gè)容器進(jìn)行布局。后臺(tái)播放創(chuàng)建一個(gè)類繼承service方法,在該類中使其具有播放暫停下一首上一首的功能的方法,從而是它在各個(gè)Activity之間進(jìn)行跳轉(zhuǎn)的時(shí)候?yàn)槠渌念愄峁┫鄳?yīng)的方法。創(chuàng)建一個(gè)新建文件類和過濾文件信息的類,用以存貯特定的文件信息和當(dāng)用戶改變文件夾終不改的內(nèi)容的時(shí)候同步更新播放列表。于接打電話這個(gè)問題,創(chuàng)建一個(gè)類進(jìn)行監(jiān)聽,當(dāng)電話進(jìn)來或出去的時(shí)候調(diào)用service方法停止音樂播放并記下播放點(diǎn)。<
15、/p><p> 對(duì)于剛接觸Android開發(fā)的我們,在很多的知識(shí)點(diǎn)上還是不是很理解,鑒于此在制作的過程難免會(huì)遇到各種問題,解決的辦法就是通過百度,goolge各種搜索引擎。</p><p> 首先在開始動(dòng)手構(gòu)思音樂播放器界面的時(shí)候就遇到了難題,要實(shí)現(xiàn)動(dòng)態(tài)菜單(本地音樂、正在播放的歌曲);</p><p> 1、如何實(shí)現(xiàn)后臺(tái)播放;</p><p&
16、gt; 2、如何進(jìn)行多頁面之間的跳轉(zhuǎn);</p><p> 3、如何進(jìn)行電話監(jiān)聽;</p><p> 4、如何將sd卡中的MP3音樂文件過濾讀取到播放列表中;</p><p> 5、如何自動(dòng)添加更新播放列表;</p><p><b> 3、系統(tǒng)結(jié)構(gòu)</b></p><p> 圖 3-1系
17、統(tǒng)功能結(jié)構(gòu)圖</p><p> 圖 3-2 播放器基本控制圖</p><p> 在播放器運(yùn)行時(shí),主界面是服務(wù)器的歌曲列表,可以點(diǎn)擊刷新列表,也可以點(diǎn)擊歌曲名,開始下載歌曲,然后點(diǎn)擊本地歌曲列表可以顯示出本地的歌曲文件,點(diǎn)擊文件名則跳轉(zhuǎn)到播放界面,在播放界面可以控制歌曲的播放、暫停、停止以及返回本地歌曲列表。</p><p> 4、數(shù)據(jù)結(jié)構(gòu)的說明和模塊的算法流程
18、圖</p><p> 圖4-1 音樂播放器系統(tǒng)流程圖</p><p> 5、音樂播放器的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)</p><p> 5.1播放器界面設(shè)計(jì)</p><p> 首先是創(chuàng)建一個(gè)主界面MainActivity,它使用TabHost布局,這里面的TabWidget控件控制著兩個(gè)Activity的互相切換:</p><p
19、> 一個(gè)是Mp3PlayerListActivity(圖5-1),這個(gè)Activity是一打開程序就顯示的服務(wù)器歌曲列表。</p><p> 圖5-1 Mp3PlayerListActivity</p><p> 另一個(gè)是LocalActivity(圖5-2),這個(gè)Activity是點(diǎn)擊TabWidget控件中的“本地”按鈕才會(huì)顯示的本地歌曲列表界面。</p>&
20、lt;p> 圖5-2 LocalActivity</p><p> 在LocalActivity中點(diǎn)擊列表中的歌曲名就會(huì)調(diào)出PlayerActivity(圖5-3),這個(gè)Activity就是播放音樂時(shí)的界面,其中有一些對(duì)播放器進(jìn)行控制的控件。</p><p> 圖5-3 PlayerActivity</p><p> 詳細(xì)設(shè)計(jì)代碼見附錄。</p&
21、gt;<p> 以上就是整個(gè)Android音樂播放器設(shè)計(jì)中比較重要的功能以及實(shí)現(xiàn)方法。</p><p> 6、運(yùn)行結(jié)果和結(jié)果分析(其中包括實(shí)驗(yàn)的檢查結(jié)果、程序的運(yùn)行情況)</p><p> Android的每一個(gè)可視化界面,都有其的唯一的布局配置文件,該文件里面有各種布局方式,和各種資源文件如圖像,文字,顏色的引用,程序在運(yùn)行時(shí),可以通過代碼對(duì)各配置文件進(jìn)行讀取。這樣就
22、可以形成不同的可視化界面和炫麗的效果。播放器主界面是一個(gè)Activity,Android工程在每個(gè)activity啟動(dòng)的時(shí)候會(huì)首先執(zhí)行Oncreate()方法,如下代碼:</p><p><b> 主界面:</b></p><p> 6.1 播放界面音軌的實(shí)現(xiàn)</p><p> 圖 6-1 播放器音軌SeekBar</p>
23、<p> 圖6-2 Android系統(tǒng)自帶SeekBar</p><p> 配置文件中三個(gè)Item項(xiàng)依次決定了SeekBar的三層背景,從最下層的灰色到最上層的藍(lán)色。通過各種屬性設(shè)置了SeekBar的傾斜度,兩端圓半徑,角度,中心位置,起始,中心和結(jié)束的顏色,游標(biāo)的起始位置。通過這些屬性設(shè)置,就自定義一個(gè)如上圖一的SeekBar音軌.</p><p> 播放器最重要的一部分
24、就是音軌與歌曲進(jìn)度同步的實(shí)現(xiàn)。音軌設(shè)置了兩個(gè)TextView用來顯示當(dāng)前歌曲播放的進(jìn)度時(shí)間和歌曲的長度(圖5.3)</p><p><b> 圖 6-3 音軌</b></p><p> 音軌對(duì)象SeekBar在歌曲剛開始播放的時(shí)候調(diào)用方法SeekBar.setMax(),參數(shù)傳入歌曲的長度。SeekBar.setProgress(1)設(shè)置游標(biāo)的起始進(jìn)度為1。然后程
25、序運(yùn)行如下代碼:</p><p> private Runnable thread_One = new Runnable() {// 線程</p><p> public void run() {</p><p> int currently_Progress = seekBar.getProgress() + 1000; seekBar.setPro
26、gress(currently_Progress);</p><p> currently_Time.setText(getFileTime(mplayer.getCurrentPosit ion()));showLrcTwo(lrc_time, lrc_word);handler.postDelayed(thread_One, 1000);}};</p><p> Android的
27、線程的開始是通過Handler類來進(jìn)行的,Handler類是線程與線程之間通信的橋梁,實(shí)現(xiàn)Runnable接口會(huì)實(shí)現(xiàn)里面的run方法,當(dāng)線程開始的時(shí)候,Runnable中的run方法會(huì)向Handler發(fā)一個(gè)Message消息,這樣,Handler類就可以接收到run方法發(fā)送過來的不同的消息進(jìn)行不同的代碼處理。這樣就達(dá)到了各線程之間的通信。要啟動(dòng)一個(gè)線程調(diào)用Handler的方法postDelayed(Runnable,1000)表示線程睡
28、眠時(shí)間是1000ms 。</p><p> 以上代碼意思是讓播放歌曲的線程每隔1000ms,即每1秒對(duì)音軌的TextView重新設(shè)置時(shí)間且讓進(jìn)度條前進(jìn)1秒的進(jìn)度。對(duì)音軌進(jìn)行刷新。這樣就實(shí)現(xiàn)了歌詞同步功能SeekBar有一個(gè)監(jiān)聽器,該監(jiān)聽器的作用是一直保持著對(duì)進(jìn)度條的監(jiān)聽,當(dāng)我們用鼠標(biāo)向SeekBar的各位置進(jìn)行點(diǎn)擊時(shí),它會(huì)自動(dòng)監(jiān)聽其位置,進(jìn)行相應(yīng)的位置顯示。這也是進(jìn)度條上的游標(biāo)會(huì)不停的移動(dòng)和歌詞時(shí)間會(huì)不停的變動(dòng)
29、的原因。</p><p> 6.2播放器播放、暫停、停止等功能</p><p> 圖 6-4 播放、暫停、停止功能</p><p><b> 6.3播放列表功能</b></p><p> 播放列表界面(如圖5.5)</p><p> 圖 6-5 歌曲列表</p><p
30、> 6.4 MP3歌曲添加導(dǎo)入</p><p><b> 圖 6-6 導(dǎo)入圖</b></p><p> 6.5 數(shù)據(jù)存儲(chǔ)方式</p><p> 在播放器正常運(yùn)行時(shí),由于各界面存在相互跳轉(zhuǎn),為了避免數(shù)據(jù)在界面跳轉(zhuǎn)的過程中丟失,我們需要將一些數(shù)據(jù)進(jìn)行臨時(shí)存儲(chǔ)或者永久存儲(chǔ)。</p><p> Android作為
31、一種手機(jī)操作系統(tǒng),提供了如下幾種存取數(shù)據(jù)的方式:Preference(配置)、File(文件)、SQLite數(shù)據(jù)和網(wǎng)絡(luò) 。</p><p> 另外,在Android中各個(gè)應(yīng)用程序組件之間是相互獨(dú)立的,彼此的數(shù)據(jù)不能共享。為了實(shí)現(xiàn)數(shù)據(jù)的共享,Android提供了Content Provider組件來實(shí)現(xiàn)應(yīng)用程序之間數(shù)據(jù)的共享 </p><p> 6.5.1 SharedPreferenc
32、es</p><p> Preference Preference提供了一種輕量級(jí)的數(shù)據(jù)存取方法,一般數(shù)據(jù)比較少,一些簡單的配置信息。它以“鍵-值”(是一個(gè)Map)對(duì)的方式,將數(shù)據(jù)保存在一個(gè)XML配置文件中</p><p> 使用到的接口(詳細(xì)內(nèi)容見文檔)</p><p> android.content .SharedPreferences提供了保存數(shù)據(jù)的方
33、法</p><p> android.content .SharedPreferences.Editor提供了獲得數(shù)據(jù)的方法</p><p> 以播放器中的播放模式存取為例:</p><p> (1).xml配置文件的讀取</p><p> 我們?nèi)砸圆シ拍J阶x取為例:當(dāng)需要用到播放模式的確定時(shí),我們將讀取.Xml文件,同樣用共享文件類
34、SharedPreferences 通過用方法getSharedPreferences("SET_MSG",MODE_WORLD_READABLE),并且是只讀方式獲得.Xml的文件內(nèi)容。SharedPreferences的對(duì)象調(diào)用方法getString("sigle_Play", null),方法返回一個(gè)String類型的值,即是我們以前存儲(chǔ)進(jìn)去的String值。此方法當(dāng)該標(biāo)記不存在時(shí)會(huì)默認(rèn)返回
35、一個(gè)null值。獲得成功后我們就可以運(yùn)用當(dāng)前的值再對(duì)程序進(jìn)行操作了。</p><p> (2).xml配置文件的存儲(chǔ)</p><p> 類SharedPreferences。它有一個(gè)方法getSharedPreferences(參數(shù)1,參數(shù)2),參數(shù)1為寫進(jìn)時(shí)的標(biāo)記,便于在從其中讀取出來時(shí)的標(biāo)記,參數(shù)2為讀取模式,有只寫模式(MODE_WORLD_WRITEABLE)和只讀模式(MOD
36、E_WORLD_READABLE),在寫之前將其置入編輯狀態(tài),用靜態(tài)方法SharedPreferences.Editor editor = sp.edit();然后對(duì)象editor可以存入一個(gè)HashMap<key,values>類型的鍵值,即putString(KEY, VALUES),這樣,我們可以將List中的對(duì)象轉(zhuǎn)化成一樣長的字符中放進(jìn)配置文件中。</p><p> 當(dāng)寫入成功時(shí),andro
37、id系統(tǒng)會(huì)自動(dòng)在目錄data/data/工程包名/shared_prefs/目錄下生成一個(gè)配置文件</p><p><b> 7、自我評(píng)價(jià)與總結(jié)</b></p><p> (1) 通過對(duì)Android手機(jī)平臺(tái)的音樂播放器軟件的開發(fā),使我對(duì)Android音樂播放器系統(tǒng)的整體設(shè)計(jì)有一個(gè)深入的了解,對(duì)整個(gè)流程也會(huì)有一個(gè)清晰的認(rèn)識(shí)。開發(fā)Android音樂播放器,要抓住開發(fā)
38、的核心部分,音樂播放器大體由播放主界面、播放列表、菜單、播放設(shè)置、文件瀏覽、歌曲搜索六大核心組成,只要掌握了這六部分的開發(fā),音樂播放器就能初具規(guī)模。而其它的功能都是在這六個(gè)功能的基礎(chǔ)上去補(bǔ)充添加的,但是這是功能的確是必不可少的功能,否則就不能算是音樂播放器了。</p><p> (2) 音樂播放器系統(tǒng)實(shí)現(xiàn)了播放器的基本功能:播放,暫停、停止、上/下一首、音量調(diào)節(jié)、歌詞顯示、播放模式、歌曲搜索、文件瀏覽器、播放列
39、表查詢等功能。運(yùn)用的系統(tǒng)平臺(tái)是現(xiàn)今最熱門的Android系統(tǒng),是一個(gè)開源的基于Linux系統(tǒng)的手機(jī)平臺(tái)。是以Java語言編寫+SQLite數(shù)據(jù)庫支持+SharePreference配置文件的組合方式進(jìn)行數(shù)據(jù)管理。實(shí)現(xiàn)了音樂播放器的系統(tǒng)編程。</p><p> (3) 本次程序設(shè)計(jì),對(duì)播放器的系統(tǒng)結(jié)構(gòu)框架做了精心的構(gòu)思與設(shè)計(jì),采用主要開發(fā)工具是Eclipse3.5+Java語言的支持,Android Develo
40、pment Tool的插件,和Android SDK2.1版本的全面結(jié)合,才使整個(gè)音樂播放器系統(tǒng)得以實(shí)現(xiàn)。</p><p> (4) 總之,經(jīng)過幾個(gè)月的Android系統(tǒng)技術(shù)知識(shí)的學(xué)習(xí)和對(duì)音樂播放器的構(gòu)思與設(shè)計(jì),使我對(duì)Android系統(tǒng)有了一定的了解,讓我對(duì)Android系統(tǒng)上的開發(fā)流程和開發(fā)模式有了深入的了解,這對(duì)我以后的Android項(xiàng)目開發(fā)有很大的幫助。</p><p> 在此論
41、文抒寫過程中,我還要感謝我的軟件工程的老師給我的支持和建議。讓我能順利的完成本次論文。</p><p> 8、附錄:程序清單,注意加注釋(包括關(guān)鍵字、方法、變量等),在每個(gè)模塊前加注釋; </p><p> 主界面MainActivity布局文件代碼:</p><p> <TabHost xmlns:android="http://schema
42、s.android.com/apk/res/android"</p><p> android:id="@android:id/tabhost"</p><p> android:layout_width="fill_parent"</p><p> android:layout_height="fi
43、ll_parent"</p><p> android:background="@drawable/bg1" ></p><p> <LinearLayout</p><p> android:orientation="vertical"</p><p> android:
44、layout_width="fill_parent"</p><p> android:layout_height="fill_parent"</p><p> android:padding="5dp" ></p><p> <TabWidget</p><p>
45、 android:id="@android:id/tabs"</p><p> android:layout_width="fill_parent"</p><p> android:layout_height="wrap_content" /></p><p> <FrameLayou
46、t</p><p> android:id="@android:id/tabcontent"</p><p> android:layout_width="fill_parent"</p><p> android:layout_height="fill_parent"</p><
47、p> android:padding="5dp" /></p><p> </LinearLayout></p><p> 服務(wù)器列表界面Mp3PlayerListActivity布局文件代碼:</p><p> <?xml version="1.0" encoding="utf
48、-8"?></p><p> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"</p><p> android:layout_width="fill_parent"</p><p> android:l
49、ayout_height="fill_parent"</p><p> android:orientation="vertical" ></p><p> <LinearLayout</p><p> android:id="@+id/listLinearLayout"</p>
50、<p> android:layout_width="fill_parent"</p><p> android:layout_height="wrap_content"</p><p> android:orientation="vertical" ></p><p><b
51、> <ListView</b></p><p> android:id="@id/android:list"</p><p> android:layout_width="fill_parent"</p><p> android:layout_height="wrap_content
52、"</p><p> android:drawSelectorOnTop="false"</p><p> android:scrollbars="vertical" /></p><p> </LinearLayout></p><p> </LinearLa
53、yout></p><p> 本地歌曲列表界面LocalActivity布局文件代碼:</p><p> <?xml version="1.0" encoding="utf-8"?></p><p> <LinearLayout xmlns:android="http://schemas
54、.android.com/apk/res/android"</p><p> android:layout_width="fill_parent"</p><p> android:layout_height="fill_parent"</p><p> android:orientation="ve
55、rtical" ></p><p> <LinearLayout</p><p> android:id="@+id/listLinearLayout"</p><p> android:layout_width="fill_parent"</p><p> android
56、:layout_height="wrap_content"</p><p> android:orientation="vertical" ></p><p><b> <ListView</b></p><p> android:id="@id/android:list&qu
57、ot;</p><p> android:layout_width="fill_parent"</p><p> android:layout_height="wrap_content"</p><p> android:drawSelectorOnTop="false"</p><
58、;p> android:scrollbars="vertical" /></p><p> </LinearLayout></p><p> </LinearLayout></p><p> 播放界面PlayerActivity布局文件代碼:</p><p> <?xml
59、 version="1.0" encoding="utf-8"?></p><p> <AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"</p><p> android:id="@+id/playerAct
60、ivity"</p><p> android:layout_width="fill_parent"</p><p> android:layout_height="fill_parent"</p><p> android:background="@drawable/bg1" >&l
61、t;/p><p> <ImageButton</p><p> android:id="@+id/pause"</p><p> android:layout_width="wrap_content"</p><p> android:layout_height="wrap_cont
62、ent"</p><p> android:layout_x="139dp"</p><p> android:layout_y="100dp"</p><p> android:src="@drawable/pause" /></p><p> <Im
63、ageButton</p><p> android:id="@+id/begin"</p><p> android:layout_width="wrap_content"</p><p> android:layout_height="wrap_content"</p><p&
64、gt; android:layout_x="55dp"</p><p> android:layout_y="100dp"</p><p> android:src="@drawable/begin" /></p><p><b> <TextView</b><
65、;/p><p> android:id="@+id/nameText"</p><p> android:layout_width="fill_parent"</p><p> android:layout_height="wrap_content"</p><p> andro
66、id:layout_x="0dp"</p><p> android:layout_y="25dp"</p><p> android:gravity="center"</p><p> android:textColor="@drawable/white"</p>
67、<p> android:textSize="20dip" /></p><p> <ImageButton</p><p> android:id="@+id/stop"</p><p> android:layout_width="wrap_content"</p&g
68、t;<p> android:layout_height="wrap_content"</p><p> android:layout_x="227dp"</p><p> android:layout_y="100dp"</p><p> android:src="@dra
69、wable/stop" /></p><p> </AbsoluteLayout></p><p><b> 9、參考文獻(xiàn)</b></p><p> [1] 張孝祥著. java就業(yè)培訓(xùn)教程[M].北京:清華大學(xué)出版社,2007.</p><p> [2] 余志龍編著.Google A
70、ndroid SDK開發(fā)范例大全[M].北京:人民郵電出版社,2009-7-1.</p><p> [3] E2ECloud工作室著.深入淺出Google Android[M].北京:人民郵電出版社,2009-08-1.</p><p> [4] 靳巖 姚尚朗著.Google Android開發(fā)入門與實(shí)戰(zhàn)[M].北京:清華大學(xué)出版社,2009-07-01.</p><
71、;p> [5] 高昂著.支持動(dòng)態(tài)語言的Android平臺(tái)[M].北京:人民郵電出版社,2009-05-07.</p><p> [6] eoe.Android開發(fā)社區(qū).http://www.eoeandroid.com/. 2010-04-10.</p><p> [7] JavaEye論壇.http://www.javaeye.com/forums. 2010-04-15.&
72、lt;/p><p> [8] Android API文檔.http://androidappdocs.appspot.com/index.html. 2010-04-10.</p><p> [9] 高煥堂編.Android 應(yīng)用框架原理與程式設(shè)計(jì)(第三版)[M].北京:清華大學(xué)出版社,2008-10-03</p><p> [10] 楊豐盛主編.Android
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于android音樂播放器設(shè)計(jì)與實(shí)現(xiàn)
- 基于android系統(tǒng)的音樂播放器的設(shè)計(jì)與實(shí)現(xiàn)
- android視頻播放器課程設(shè)計(jì)
- 基于android的音樂播放器的設(shè)計(jì)與實(shí)現(xiàn)
- Android音樂播放器的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于 Android 的音樂播放器的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于android的音樂播放器的設(shè)計(jì)與實(shí)現(xiàn)2
- 基于Android系統(tǒng)音樂播放器的設(shè)計(jì).pdf
- 基于Android的音樂播放器的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于android的音樂播放器的設(shè)計(jì)
- 基于android音樂播放器的設(shè)計(jì)與開發(fā)
- 基于android系統(tǒng)的音樂播放器的實(shí)現(xiàn)
- 基于android的音樂播放器的設(shè)計(jì)
- 基于Android的音樂播放器軟件的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于Android的手機(jī)音樂播放器的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于 android 的音樂播放器的設(shè)計(jì)與實(shí)現(xiàn)(無源碼)
- 基于android系統(tǒng)的音樂播放器的實(shí)現(xiàn)2
- 基于Android平臺(tái)的音樂播放器的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 畢業(yè)設(shè)計(jì)--基于android平臺(tái)的音樂播放器的設(shè)計(jì)與實(shí)現(xiàn)
- 基于android平臺(tái)的音樂播放器開發(fā)與設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論