freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于android系統(tǒng)的音樂(lè)播放器設(shè)計(jì)與實(shí)現(xiàn)(編輯修改稿)

2025-07-09 07:53 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 Program Files\Java\”(視個(gè)人安裝路徑而定)。 path 的項(xiàng),雙擊,在變量值后面添加: “ 。%JAVA_HOME%\bin。” , “ 系 統(tǒng) 變 量 ” 變 量 名 : “ classpath ” , 變 量 值 :“ .。%JAVA_HOME%\lib\。%JAVA_HOME%\lib\?!? 配置完成 后 ,重啟可以 在 cmd下輸入 java 或者 javac 測(cè)試 。 安裝 Eclipse Eclipse 是我們以后在 Android 開(kāi)發(fā)時(shí)使用的開(kāi)發(fā)平臺(tái),它集成了很多功能以及插件,在開(kāi)發(fā)的過(guò)程中便于我們使用,在官網(wǎng)( 應(yīng)系統(tǒng)以及功能的安裝包,在安裝提示安裝完成后并且完成了 JDK 的安裝后即可正常使用。 貴陽(yáng)學(xué)院畢業(yè)設(shè)計(jì)(論文) 9 安裝 SDK SDK( Software Development Kit) 初始包中有開(kāi)發(fā) Android 程序所要用到的工具,它包括了從編譯到運(yùn)行 Android 應(yīng)用程序所需要的各種工具。安裝時(shí)可以根據(jù)自己的需求選擇安裝相應(yīng)的版本。 (SDK 下載地址: 安裝 ADT 按照 安裝完 SDK 初始包后,就可以開(kāi)始開(kāi)發(fā) Android 應(yīng)用程序了,但是為了更高效地進(jìn)行開(kāi)發(fā), Android 團(tuán)隊(duì)推出了 Android Development Tools (ADT) 。 ADT 是目前開(kāi)發(fā) Android 應(yīng)用最有效的工具,它是一個(gè) Eclipse 插件,支持 Eclipse 及 以上的版本。以 Eclipse (Galileo)為例,安裝過(guò)程如下: 1. 打開(kāi) Eclipse,選擇 Help Install New Softare。 2. 在 Available Software 對(duì)話框中,點(diǎn)擊 Add...。 3. 在彈出的 Add Site 對(duì)話框中,任意填寫(xiě)一個(gè)名字到 Name 一欄。在 Location 一欄,則填入這一 URL: “在后續(xù)的步驟中發(fā)現(xiàn)無(wú)法安裝插件,可以試著把 URL 中的 換成 。) 4. 返回到 Available Software 窗口后,就能看到列表中出現(xiàn)了 Developer Tools ,選中它前面的復(fù)選框,再點(diǎn)擊 “Next”,就會(huì)開(kāi)始下載安裝 ADT 的各種組件了。 5. 安裝完畢后將彈出窗口顯示 ADT 相關(guān)的各種信息以及許可協(xié)議,點(diǎn)擊 “Finish“即可完成安裝。 6. 重新啟動(dòng) Eclipse。 設(shè)置 Eclipse Window Preferences... 打開(kāi)偏好設(shè)置 Android一欄。 SDK Location 一欄邊 的 Browse 按鈕,選擇剛剛下載的 SDK 保存的路徑。 Apply, OK,設(shè)置生效。 至此, Android 的開(kāi)發(fā)環(huán)境就已經(jīng)搭建完畢,可以使用了 。 貴陽(yáng)學(xué)院畢業(yè)設(shè)計(jì)(論文) 10 創(chuàng)建 AVD 在安裝好 JDK, Eclipse, SDK, ADK 之后我們就可以進(jìn)行 Android 項(xiàng)目開(kāi)發(fā)了,但是在開(kāi)發(fā)的過(guò)程中我們經(jīng)常需要運(yùn)行、調(diào)試我們所開(kāi)發(fā)的軟件,這就需要用到 AVD( Android Virtual Device),也就是 Android 虛擬機(jī)。 1. 打開(kāi) Eclipse。 2. 點(diǎn)擊 Opens the Android Virtual Device Manager 圖標(biāo)按鈕。 3. 在彈出的窗口中點(diǎn)擊 New 新建一個(gè) Android 虛擬機(jī)。 4. 在彈出的新建虛擬機(jī)窗口中 Name 一欄填上虛擬機(jī)的名稱(chēng)(一般與虛擬機(jī)的版本號(hào)相同,便于區(qū)分)。 5. 在 Target 一欄選擇一個(gè) Android 虛擬機(jī)版本(如 或 )。 6. 在 SD Card 下的 Size 一欄填上我們要設(shè)定的 SD 卡容量大小。 7. 點(diǎn)擊 Create AVD,這樣我們的一個(gè) Android 虛擬機(jī)就創(chuàng)建好了。 貴陽(yáng)學(xué)院畢業(yè)設(shè)計(jì)(論文) 11 第四章 系統(tǒng)需求分析 功能需求分析 根據(jù)項(xiàng)目的目標(biāo),我們可獲得項(xiàng)目系統(tǒng)的基本需求,一 下從不同角度來(lái)描述系統(tǒng)的需求,并且使用用例圖來(lái)描述,系統(tǒng)的功能需求,播放器的基本控制需求。以下分別描述: 播放器的基本功能 圖 41 播放器基本控制圖 在播放器運(yùn)行時(shí),主界面是服務(wù)器的歌曲列表,可以點(diǎn)擊刷新列表,也可以點(diǎn)擊歌曲名,開(kāi)始下載歌曲,然后點(diǎn)擊本地歌曲列表可以顯示出本地的歌曲文件,點(diǎn)擊文件名則跳轉(zhuǎn)到播放界面,在播放界面可以控制歌曲的播放、暫停、停止以及返回本地歌曲列表。 音樂(lè)播放器的基本功能 下載歌曲 播放 暫停 停止 音量控制 歌曲列表 播放文件 退出 貴陽(yáng)學(xué)院畢業(yè)設(shè)計(jì)(論文) 12 功能需求時(shí)序分析 圖 42 音樂(lè)播放器的時(shí)序圖 從以上時(shí)序圖可以看到播放器中消息發(fā)送及調(diào)用過(guò)程。 貴陽(yáng)學(xué)院畢業(yè)設(shè)計(jì)(論文) 13 系統(tǒng)結(jié)構(gòu)流程圖 圖 43 音樂(lè)播放器系統(tǒng)流程圖 以上顯示了播放器的各個(gè)流程。 系統(tǒng)界面需求 播放器界面要求布局合理,簡(jiǎn)約,顏色舒適,控制按鈕友好,能讓用戶(hù)一眼就能看出各個(gè)按鈕的作用及操作方法。能實(shí)現(xiàn)要求的功能,但又不重復(fù)。要考慮到不同手機(jī)屏幕大貴陽(yáng)學(xué)院畢業(yè)設(shè)計(jì)(論文) 14 小可能不一樣,應(yīng)盡量兼容大多數(shù)手機(jī)屏幕尺寸,使之顯示無(wú)障礙。 開(kāi)發(fā)環(huán)境 操作系統(tǒng): Windows7 x64。 開(kāi)發(fā)環(huán)境: Eclipse Version: Indigo Service Release 1 ADT Version: 運(yùn)行環(huán)境 : Android 貴陽(yáng)學(xué)院畢業(yè)設(shè)計(jì)(論文) 15 第五章 音樂(lè)播放器詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 播放器界面設(shè)計(jì) 首先是創(chuàng)建一個(gè)主界面 MainActivity,它使用 TabHost 布局,這里面的 TabWidget 控件控制著兩個(gè) Activity 的互相切換: 一個(gè)是 Mp3PlayerListActivity(圖 51),這個(gè) Activity 是一打開(kāi)程序就顯示的服務(wù)器歌曲列表。 圖 51 Mp3PlayerListActivity 另一個(gè)是 LocalActivity(圖 52),這個(gè) Activity 是點(diǎn)擊 TabWidget 控件中的“本地”按鈕才會(huì)顯示的本地歌曲列表界面。 貴陽(yáng)學(xué)院畢業(yè)設(shè)計(jì)(論文) 16 圖 52 LocalActivity 在 LocalActivity 中點(diǎn)擊列表中的歌曲名就會(huì)調(diào)出 PlayerActivity(圖 53),這個(gè) Activity就是播放音樂(lè)時(shí)的界面,其中有一些對(duì)播放器進(jìn)行控制的控件。 圖 53 PlayerActivity 貴陽(yáng)學(xué)院畢業(yè)設(shè)計(jì)(論文) 17 詳細(xì)設(shè)計(jì)代碼見(jiàn)附錄。 獲取并解析 XML 文件 因?yàn)榇蜷_(kāi)播放器首先就要刷新服務(wù)器上的歌曲列表,那么我們就得獲取服務(wù)器上的歌曲列表文件,即 XML 文件。實(shí)現(xiàn)代碼如下: // 根據(jù) URL下載文本文件,必須是文本文件,因?yàn)榉祷刂凳俏谋局械淖址? public String download(String urlStr) { StringBuilder sb = new StringBuilder()。 String line = null。 BufferedReader buffer = null。 try { // 創(chuàng)建一個(gè) URL對(duì)象 URL url = new URL(urlStr)。 // 創(chuàng)建一個(gè) 連接 HttpURLConnection urlConn = (HttpURLConnection) url .openConnection()。 // 使用 io讀取數(shù)據(jù) buffer = new BufferedReader(new InputStreamReader( ()))。 // 一行行的讀取數(shù)據(jù) while ((line = ()) != null) { (line)。 } } catch (Exception e) { ()。 } finally { // 關(guān)閉 buffer 節(jié)約資源 try { ()。 } catch (Exception e2) { ()。 } } //將讀取到的文本文件中的內(nèi)容傳回去 return ()。 } 貴陽(yáng)學(xué)院畢業(yè)設(shè)計(jì)(論文) 18 從服務(wù)器上下載到 XML 中的文 本后就要開(kāi)始解析,在開(kāi)始解析之前我們先來(lái)了解一下服務(wù)器上用來(lái)保存歌曲信息的 XML 文件。 圖 52 XML 文件結(jié)構(gòu)圖 從上圖中可以看出所有的歌曲信息是包含在一個(gè) resources 標(biāo)簽當(dāng)中的,而每一個(gè)resource 標(biāo)簽就代表一首歌曲,其中的 id、 、 、 標(biāo)簽都分表代表了歌曲的一條信息。 在我所設(shè)計(jì)的播放器中所用到是實(shí)現(xiàn) SAX( Simple API for XML)接口的方式來(lái)解析XML 文件,解析的實(shí)現(xiàn)代碼如下: //開(kāi)始解析 XML文件中的每一個(gè)標(biāo)簽時(shí)調(diào)用的方 法 @Override public void startElement(String uri, String localName, String qName, Attributes attr) throws SAXException { //將從 XML文件中讀取到的標(biāo)簽名賦值給 tagName tagName = localName。 //如果標(biāo)簽名為 resource時(shí) 就創(chuàng)建一個(gè) mp3Info的實(shí)例對(duì)象 if ((resource)) { mp3Info = new Mp3Info()。 } } //解析完 XML文件中的每一個(gè)標(biāo)簽時(shí)調(diào)用的方法 @Override public void endElement(String uri, String localName, String qName) 貴陽(yáng)學(xué)院畢業(yè)設(shè)計(jì)(論文) 19 throws SAXException { //每次讀取到 resource標(biāo)簽就代表一首歌曲的信息已經(jīng)完成,并將次 mp3Info加到 infos當(dāng)中 if ((resource)) { (mp3Info)。 } //每讀完一個(gè)標(biāo)簽就清空 tagName,以免出錯(cuò) tagName = 。 } //讀取 XML文件中沒(méi)一個(gè)標(biāo)簽中內(nèi)容 @Override public void characters(char[] ch, int start, int length) throws SAXException { //將讀取到的內(nèi)容賦值給 temp String temp = new String(ch, start, length)。 //將每 個(gè)標(biāo)簽中的內(nèi)容賦值給 mp3Info實(shí)例對(duì)象中相應(yīng)的變量 if ((id)) { (temp)。 } else if (()) { (temp)。 } else if (()) { (temp)。 } else if (()) { (temp)。 } else if (()) { (temp)。 } } 下載 MP3 文件 根據(jù) URL 的地址從服務(wù)器上下載文件,因?yàn)橄螺d不可能是一瞬間就能完成的事,如果我們?cè)谥骶€程中進(jìn)行下載,那么下載過(guò)程中程序就會(huì)出現(xiàn)假死狀態(tài),因?yàn)樗诘却募螺d完成,下載完成才能執(zhí)行后面的操作,所以我們需要用一個(gè)線程來(lái)進(jìn)行下載任務(wù),實(shí)現(xiàn)代碼如下: // 每次用戶(hù)點(diǎn)擊 ListActivity當(dāng)中的一個(gè)條目時(shí),就會(huì)調(diào)用該方法 @Override public int onStartCommand(Intent intent, int flags, int startId) { 貴陽(yáng)學(xué)院畢業(yè)設(shè)計(jì)(論文) 20 // 從 Intent對(duì)象當(dāng)中將 Mp3Info對(duì)象取出 Mp3Info mp3Info = (Mp3Info) (mp3Info)。 // 生成一個(gè)下載線程,并將 Mp3Info對(duì)象作為參數(shù)傳遞到線程對(duì)象當(dāng)中 DownloadThread downloadThread = new DownloadThread(mp3Info)。 // 啟動(dòng)新線程 Thread thread = new Thread(downloadThread)。 ()。 return (intent, flags, startId)。 } class DownloadThread implements Runnable {
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1