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

正文內(nèi)容

基于安卓平臺(tái)的音樂播放器的設(shè)計(jì)畢業(yè)論文-資料下載頁

2025-06-27 22:53本頁面
  

【正文】 ate LrcContent mLrcContent。 public LrcProcess() { mLrcContent = new LrcContent()。 LrcList = new ArrayListLrcContent()。 }(2) 讀取歌詞文件的內(nèi)容 public String readLRC(String song_path) { // public void Read(String file){ StringBuilder stringBuilder = new StringBuilder()。 File f = new File((.mp3, .lrc))。 try { FileInputStream fis = new FileInputStream(f)。 InputStreamReader isr = new InputStreamReader(fis, GB2312)。 BufferedReader br = new BufferedReader(isr)。 String s = 。 while ((s = ()) != null) { s = ([, )。 s = (], @)。 String splitLrc_data[] = (@)。 if ( 1) { (splitLrc_data[1])。 int LrcTime = TimeStr(splitLrc_data[0])。 (LrcTime)。 (mLrcContent)。 mLrcContent = new LrcContent()。 } } ()。 ()。 ()。 } catch (FileNotFoundException e) { ()。 (沒有有歌詞文件,趕緊去下載!...)。 } catch (IOException e) { ()。 (沒有讀取到歌詞??!)。 } return ()。 }(3) 解析歌曲時(shí)間處理類: public int TimeStr(String timeStr) { timeStr = (:, .)。 timeStr = (., @)。 String timeData[] = (@)。 int minute = (timeData[0])。 int second = (timeData[1])。 int millisecond = (timeData[2])。 int currentTime = (minute * 60 + second) * 1000 + millisecond * 10。 return currentTime。 } public ListLrcContent getLrcContent() { return LrcList。 }(4) 獲得歌詞和時(shí)間并返回的類: public class LrcContent { private String Lrc。 private int Lrc_time。 public String getLrc() { return Lrc。 } public void setLrc(String lrc) { Lrc = lrc。 } public int getLrc_time() { return Lrc_time。 } public void setLrc_time(int lrc_time) { Lrc_time = lrc_time。 } }} 歌曲列表界面 歌曲列表顯示界面 。在Android里面,有一個(gè)視圖叫ListView,其特點(diǎn)是一個(gè)有BaseAdapter的屬性,從下到下,或從左到右的顯示方式。系統(tǒng)默認(rèn)的方式每一行只顯示一個(gè)TextView,本播放列表實(shí)現(xiàn)了自定義的方式,剛ListView的每一行顯示一個(gè)音樂圖片和一個(gè)歌曲名字。我們定義一個(gè)類MusicAdapter 繼承了BaseAdapter,然后通過算法對(duì)這個(gè)適配器進(jìn)行擴(kuò)展,擴(kuò)展成為第一行能顯示一張圖片和一個(gè)歌曲名字。由于BaseAdapter是一個(gè)抽象類,我們需要實(shí)現(xiàn)里面的抽象方法getVie()。該方法返回一個(gè)View,即視圖。視圖可以顯示在Activity上,所以就可以看到我們想要的歌曲列表界面。 歌曲列表ListView同樣有一個(gè)監(jiān)聽器new onItemClickListener(){@Override public void onItemClick(AdapterView? arg0, View arg1, int arg2,long arg3) {}},我們只要實(shí)現(xiàn)這個(gè)方法,就可以監(jiān)聽鼠標(biāo)的點(diǎn)擊事件,當(dāng)鼠標(biāo)點(diǎn)擊到每一行時(shí),(int position)得到該行上的信息。這樣就可以通過Intent將數(shù)據(jù)傳入到其它的Activity。歌詞列表界面的添加一個(gè)ListView控件:?xml version= encoding=utf8?LinearLayout xmlns:android= android:orientation=vertical android:layout_width=fill_parent android:layout_height=fill_parent android:background=@drawable/musiclist_bkg TextView/TestView ListView android:id=@+id/listView1 android:layout_width=fill_parent android:layout_height=415dip android:cacheColorHint=00000000/ListView/LinearLayout 專輯列表界面 輯列表采用了網(wǎng)格視圖(GridView) 用它能實(shí)現(xiàn)視圖的網(wǎng)格排列,九宮格視圖就是GridVew最典型的使用,GridView是一個(gè)AdapterView,所以需要通過適配器來綁定數(shù)據(jù),這里使用BaseAdapter。 專輯列表界面添加Gridview控件,結(jié)構(gòu)如下:?xml version= encoding=utf8?RelativeLayout GridView /GridView/RelativeLayout專輯列表部分代碼: 歌曲專輯圖片顯示,如果有歌曲圖片,才會(huì)返回,否則為null,要注意判斷 public View getView(int position, View convertView, ViewGroup parent) { // TODO Autogenerated method stub LayoutInflater lif = ()。 View v = (, null)。 ImageView iv。 TextView tv1。 TextView tv2。 iv = (ImageView) ()。 tv1 = (TextView) ()。 tv2 = (TextView) ()。(1) 獲取圖片專輯路徑: String url = .getAlbumArt((position).get_id())。 if (url != null) { ((url))。 } else { ()。 } (( , ))。(2) 帶動(dòng)畫顯示專輯名: ((position).getMusicAlbum())。 (( , ))。(3) 帶動(dòng)畫顯示歌手名: ((position).getMusicSinger())。 (( , ))。 return v。 }} 到這里基本實(shí)現(xiàn)了一個(gè)播放器應(yīng)該具有的基本功能:播放,暫停,上/下首歌曲的選擇,而且還有歌詞的同步顯等功能 ,音樂播放器的設(shè)計(jì)基本完成 。 5 音樂播放器的測試 一個(gè)軟件產(chǎn)品或系統(tǒng)的開發(fā)成功,不僅僅是編寫完為使用者提供服務(wù)功能的程序而已。軟件程序編寫的完成,其實(shí)只是完成了開發(fā)任務(wù)中的一半。與程序的開發(fā)相配合的、具有同樣重要性的另一半工作,是對(duì)開發(fā)完畢的軟件所進(jìn)行必要的測試。對(duì)測試的管理和執(zhí)行,其重要性不亞于對(duì)程序本身的開發(fā)。你可以花費(fèi)巨大的資源和努力進(jìn)行程序的開發(fā),可是你要是沒有與此配套的完善的測試,所開發(fā)出來的軟件往往會(huì)因?yàn)橘|(zhì)量問題無法滿足客戶的要求和幫助你贏得市場的競爭。 近幾年來國內(nèi)信息業(yè)界的軟件開發(fā)的成熟程度大大提高,很多公司都開始重視軟件測試的重要性、并建立了與此相關(guān)的組織結(jié)構(gòu)來保證測試工作得以執(zhí)行。但是忽視或輕視測試工作的不良習(xí)慣和企業(yè)文化仍舊普遍存在。一個(gè)成熟和高效的開發(fā)組織應(yīng)該必須采取正確的做法:將軟件的測試和開發(fā)放到同等重要的位置上,對(duì)軟件的測試和開發(fā)給予同樣程度的重視。 前面講述了測試對(duì)軟件開發(fā)的重要性。那么在開發(fā)項(xiàng)目管理的運(yùn)作中,究竟如何執(zhí)行具體的測試呢?答案是:每個(gè)軟件都有它的功能設(shè)計(jì),通過它們?yōu)橛脩艚鉀Q某些問題或提供某些服務(wù)。測試的目的有兩個(gè):第一是要確證這些為用戶解決某些問題的功能設(shè)計(jì)被正確無誤地開發(fā)出來了,也就是說,如果用戶按照所設(shè)計(jì)的使用方法和過程(我們稱為User Scenario,即使用方案),的確能夠利用這些功能所提供的服務(wù)和解決問題;第二是保證軟件在被使用的情況下,如果使用者并不按照所設(shè)計(jì)的使用方案在使用軟件,它不應(yīng)該由于任意的使用、或其它外部影響造成任何問題,包括出現(xiàn)差錯(cuò),比如數(shù)據(jù)遺失、數(shù)據(jù)錯(cuò)誤、甚至造成系統(tǒng)崩潰等等。 為了達(dá)到這兩個(gè)不同的測試目的,在執(zhí)行具體的測試時(shí)就要采用不同的測試方法。為達(dá)到第一個(gè)目的、也是最主要的目的,最佳的方法是根據(jù)所設(shè)計(jì)的每個(gè)功能和使用方案,設(shè)計(jì)一個(gè)相對(duì)應(yīng)的測試執(zhí)行過程,去驗(yàn)證這個(gè)功能或使用方案是能夠從頭到尾完成的。這個(gè)測試執(zhí)行過程的定義和描述稱為測試方案或測試案例(Test Case)。要能夠確證所有功能的確是準(zhǔn)確地被丌發(fā)出來了,唯的辦法就是為每一個(gè)使用方案都設(shè)計(jì)出大量的、一套完整的測試案例,然后通過對(duì)這些測試案例的按部就班的執(zhí)行來證明軟件的確可以完成所設(shè)計(jì)的功能。測試案例的全面性和完整性最終決定了為達(dá)到第一個(gè)目的測試的質(zhì)量[9]。 測試模型 V模型 V模型最早是由Paul Rook在20世紀(jì)80年代后期提出的,旨在改進(jìn)軟件開發(fā)的效率和效果。V模型反映出了測試活動(dòng)與分析設(shè)計(jì)活動(dòng)的關(guān)系。,從左到右描述了基本的開發(fā)過程和測試行為,非常明確的標(biāo)注了測試過程中存在的不同類型的測試,并且清楚的描述了這些測試階段和開發(fā)過程期間各階段的對(duì)應(yīng)關(guān)系。 圖 V模型 V模型指出單元和集成測試應(yīng)檢測程序的執(zhí)行是否滿足軟件設(shè)計(jì)的要求系統(tǒng)測試應(yīng)檢測系統(tǒng)功能、性能的質(zhì)量特性是否達(dá)到系統(tǒng)要求的指標(biāo);驗(yàn)收測試確定軟件的實(shí)現(xiàn)是否滿足用戶需要或合同的要求。但V模型存在一定的局限性,它僅僅把測試作為在編碼之后的一個(gè)階段,是針對(duì)程序進(jìn)行的尋找錯(cuò)誤的活動(dòng),而忽視了測試活動(dòng)對(duì)需求分析、系統(tǒng)設(shè)計(jì)等活動(dòng)的驗(yàn)證和確認(rèn)的功能。 W模型 W模型由Evolutif公司公司提出,相對(duì)于V模型,W模型增加了軟件各開發(fā)階段中應(yīng)同步進(jìn)行的驗(yàn)證和確認(rèn)活動(dòng)。,W模型由兩個(gè)V字型模型組成,分別代表測試與開發(fā)過程,圖中明確表示出了測試與開發(fā)的并行關(guān)系。W模型強(qiáng)調(diào):測試伴隨著整個(gè)軟件開發(fā)周期,而且測試的對(duì)象不僅僅是程序,需求、設(shè)計(jì)等同樣要測試,也就是說,測試與開發(fā)是同步進(jìn)行的。W模型有利于盡早地全面的發(fā)現(xiàn)問題。例如,需求分析完成后,測試人員就應(yīng)該參與到對(duì)需求的驗(yàn)證和確認(rèn)活動(dòng)中,以盡早地找出缺陷所在。同時(shí),對(duì)需求的測試也有利于及時(shí)了解項(xiàng)目難度和測試風(fēng)險(xiǎn),及早制定應(yīng)對(duì)措施,這將顯著減少總體測試時(shí)間,加快項(xiàng)目進(jìn)度。但W模型也存在局限性。在w模型中,需求、設(shè)計(jì)、編碼等活動(dòng)被視為串行的,同時(shí),測試和開發(fā)活動(dòng)也保持著一種線性的前后關(guān)系,上一階段完全結(jié)束,才可正式開始下一個(gè)階段工作。這樣就無法支持迭代的開發(fā)模型。對(duì)于當(dāng)前軟件開發(fā)復(fù)雜多變的情況,W模型并不能解除測試管理面臨著困惑。 圖 W模型 測試模型的選擇 V模型強(qiáng)調(diào)了在整個(gè)項(xiàng)目開發(fā)中需要經(jīng)歷的不同測試級(jí)別,但忽視了測試的對(duì)象不應(yīng)該僅僅是程序。而W模型在這一點(diǎn)上進(jìn)行了補(bǔ)充,明確指出應(yīng)該對(duì)需求、設(shè)計(jì)進(jìn)行測試。但是V模型和W模型都沒有將一個(gè)完整的測試過程抽象出來,成為一個(gè)獨(dú)立的流程這并不適合當(dāng)前軟件開發(fā)中廣泛的迭代模型。在實(shí)際測試工作中我們應(yīng)該盡可能地區(qū)應(yīng)用各模型中對(duì)項(xiàng)目有實(shí)用價(jià)值的方面,不能強(qiáng)行的為實(shí)用模型而實(shí)用模型。 音樂播放器的開發(fā)過程中,由于市場競爭激烈,不斷有新功能推出,作為用戶來講,總會(huì)喜歡功能強(qiáng)大的產(chǎn)品。因此這著就導(dǎo)致了,我們?cè)陂_發(fā)的初期階段就對(duì)需求定義進(jìn)行了多次的更新。所以盡管開發(fā)的這個(gè)音樂播放器不是一個(gè)復(fù)雜的應(yīng)用模塊,但我們還是要采用結(jié)構(gòu)更為合理的w軟件測試模型作為我們的測試框架,在需求分析不斷變化的同時(shí),我們能夠?qū)π枨鬁y試和設(shè)計(jì)測試進(jìn)行一
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1