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

正文內(nèi)容

畢業(yè)論文-基于android手機(jī)平臺(tái)的音樂(lè)播放器應(yīng)用程序的設(shè)計(jì)與實(shí)現(xiàn)-資料下載頁(yè)

2025-06-03 21:09本頁(yè)面
  

【正文】 ermission / /manifest Android 系統(tǒng)有一個(gè)編碼的規(guī)定,支持的編碼是 utf8,當(dāng)程序中出現(xiàn)亂碼是,我們須將其編碼格式轉(zhuǎn)化為 utf8.在 中會(huì)在第一行聲明一句:?xml version= encoding=utf8?。它是該系統(tǒng)支持的版本和編碼。在第二行定義了我們需要使用的架構(gòu),該架構(gòu)來(lái)自xmlns:android= xmlns(XML namespace)是一個(gè)命名空間,它就像一條河的源頭一樣能讓我們找到系統(tǒng)架構(gòu),每一個(gè)配置文件必須有這個(gè) xmlns,否則程序中的所使用的所有資源將無(wú)法找到。 在 application 元素我們定義 android:icon=@drawable/icon android:label=@string/app_name, android: icon 是程序在手機(jī)中顯示的圖片,我們運(yùn)用 @drawable/icon 表示了對(duì) res/drawable 目錄下的 的引用。@string/app_name表示了對(duì) res/value目錄下 app_name參數(shù)的引用。 activity android:name=.PlayRackActivity intentfilter action android:name=/ category android:name= / /intentfilter /activity 這是系統(tǒng)確定的首先要啟動(dòng)的 Activity 是 PlayRackActivity。 在 intentfilter 選項(xiàng)中,有 action 和 category 等等屬性,我們需要定義 action的值為 , category 的值為,它們是系統(tǒng)的值,程序在解析到這些常用后就可以確定首先要啟動(dòng)的 Activity。當(dāng)我們需要通過(guò)一個(gè)組件觸發(fā)另一個(gè)組件時(shí),我們將設(shè)定 action 和 category 的其它屬性值,系統(tǒng)會(huì)根據(jù)我們?cè)O(shè)定的屬性值去 的 application 中尋找標(biāo)識(shí),任何一個(gè) Activity 的 action 和category 是唯一,所以程序在任何時(shí)候都能唯一啟動(dòng)一個(gè) Activity,這樣,不同的Activity 之間的跳轉(zhuǎn)就實(shí)現(xiàn)了。 在 中有一個(gè)根結(jié)點(diǎn) usessdk,它是我們需要定義的 ADT 版本,例如我們將其值設(shè)定為 android:minSdkVersion=4,則表示此 Android 工程所用的版本為 , Android 還有 、 、 、 、 。 如果我們需要對(duì)網(wǎng)絡(luò)進(jìn)行訪問(wèn),比如打開(kāi)一個(gè)網(wǎng)頁(yè),剛我還需要設(shè)置一個(gè)網(wǎng)絡(luò)訪問(wèn)權(quán)限 usespermission,將其的值設(shè)置為android:name=,我們就可以訪問(wèn)網(wǎng)絡(luò)了。當(dāng)然usespermission 還有很多其它的權(quán)限,例如 GPS 定位權(quán)限,瀏覽器數(shù)據(jù)存取權(quán)限 等等。 當(dāng)程序的任何一個(gè)組件要用到時(shí),都必須在 文件中聲明。四 30 大組件要使用前都需要聲明,其聲明方式如下: service/service provider/provider activity/activity receiver/receiver 其中聲明 provider 時(shí)還需要聲明其授權(quán) authorities。每個(gè)組件里面還有很多的屬性,會(huì)根據(jù)程序的具體需要定義不同的屬性。過(guò)濾器 intentfilter 有兩種啟動(dòng)方式來(lái)啟動(dòng)界面: (1) 顯示方式 顯示方式是在代碼中的直接啟動(dòng)組件,啟動(dòng)時(shí)會(huì)聲明 Intent,在它的構(gòu)造方法Intent(組件 1,組件 2)中直接指定一個(gè)組件的名字 ,然后調(diào)用方法 startIntent(intent)以啟動(dòng)指定的組件。 (2) 隱式方式 隱式方式是通過(guò)過(guò)濾器來(lái)過(guò)濾完成的,啟動(dòng)的組件必 須滿(mǎn)足 action 和 category 的條件才能夠啟動(dòng)該組件。這些屬性是在 文件中聲明的。兩種啟動(dòng)方式都可以通過(guò)程序 setAction( ACTION 常量)和 startActivity( intent)或配置文件兩種方式來(lái)實(shí)現(xiàn)組件的跳轉(zhuǎn)。 第五章 播放器系統(tǒng)功能詳細(xì)設(shè)計(jì) 播放器主界面 播放器主界面(圖 ) 31 圖 Android 的每一個(gè)可視化界面,都有其的唯一的布局配置文件,該文件里面有各種布局方式,和各種資源文件如圖像, 文字,顏色的引用,程序在運(yùn)行時(shí),可以通過(guò)代碼對(duì)各配置文件進(jìn)行讀取。這樣就可以形成不同的可視 化界面和炫麗的效果。播放器主界面是一個(gè) Activity, Android 工程在每個(gè) activity 啟動(dòng)的時(shí)候會(huì)首先執(zhí)行 Oncreate()方法,如下代碼: @Override Public void onCreate(Bundle savedInstanceState) { (savedInstanceState)。 setContentView()。} 該方 法主要執(zhí)行界 面的初始化 操作, Activity 有個(gè)設(shè) 置布局的方法 :(layoutResID),參數(shù)為資源 ID,該 Id 在工程目錄 res/layout下,主界面布局文件名為 play_rack。 下面為 布局文件代碼結(jié)構(gòu)如下: ?xml version= encoding=utf8? AbsoluteLayout LinearLayout /LinearLayout SeekBar/SeekBar LinearLayout/LinearLayout /AbsoluteLayout 32 在絕對(duì)布局 AbsoluteLayout下嵌套兩種線性布局 LinearLayout和 SeekBar,第一個(gè) LinearLayout實(shí)現(xiàn)了標(biāo)題和歌曲名的顯示位置,通過(guò) AbsoluteLayout布局設(shè)置 LinearLayout絕對(duì)坐標(biāo)來(lái)控制標(biāo)題的位置。每個(gè)布局內(nèi)可以放置多種 Widget(窗體部件)例如: TextViewImageButton等。每個(gè) Widget內(nèi) 有多種屬性,可以設(shè)置該 Widget的坐標(biāo),大小,背景和顏色等參數(shù)。在播放界面中,歌詞顯示為居中,實(shí)現(xiàn)方法代碼如下: LinearLayout android:orientation=horizontal android:gravity=centerandroid:layout_height=wrap_content android:layout_width=fill_parent TextView android:layout_height=wrap_content android:textColor=8deeee android:id=@+id/lrcText android:layout_width=wrap_content/TextView /LinearLayout 屬性: orientation=horizontal:此線性布局的子部件為水平方式布局 Layout_width=fill_content :布局的寬度為填滿(mǎn)父布局 Layout_height=wrap_content :布局的高度子由窗體的大小決定 窗 體 TextView 文本 : textColor=8deeee 設(shè)置文本顯示的顏色 RGB為 8deeee TextSize為默認(rèn)大小 播放界面音軌的實(shí)現(xiàn) 播放器音軌 SeekBar(如下圖) Android系統(tǒng)自帶 SeekBar(如下圖) 圖 不管是從界面外觀還是從功能上,系統(tǒng)自帶的 SeekBar往往不能滿(mǎn)足用戶(hù)的需要。所以我在這里自定義了一個(gè)音軌 SeekBar, 在 , SeekBar的代碼如下: SeekBar android:id=@+id/seekbar android:layout_width=245px android:layout_height=20px android:layout_x=40px 33 android:layout_y=260px android:progressDrawable=@drawable/seekbar_style android:thumb=@drawable/thumb android:paddingLeft=18px android:paddingRight=15pxandroid:paddingTop=5px android:paddingBottom=5px android:progress=0 android:max=100 android:secondaryProgress=0 /SeekBar 上面代碼中有參數(shù) android: thumb=@drawable/thumb 為音軌游標(biāo)的圖片資源android: progressDrawable=@drawable/seekbar_style為 SeekBar條的風(fēng)格 style。引用了 drawable中的 ,,算法如下: ?xml version= encoding=utf8? layerlist xmlns:android= item android:id=@android:id/background shapecorners android:radius=5dip /gradient android:startColor=ff9d9e9d android:centerColor=ff5a5d5a android:centerY= android:endColor=ff747674 android:angle=270 //shape/item item android:id=@android:id/secondaryProgress clipshapecorners android:radius=5dip / gradient android:startColor=80ffd300 android:centerColor=80ffb600 android:centerY= android:endColor=a0ffcb00 android:angle=270 / /shape/clip/item item android:id=@android:id/progress clipshapecorners android:radius=5dip /gradient android:startColor=ff0099CCandroid:centerColor=ff3399CC android:centerY=android:endColor=ff6699CC android:angle=270 //shape/clip/item /layerlist 配置文件中三個(gè) Item項(xiàng)依次決定了 SeekBar的三層背景,從最下層的灰色到最上層的藍(lán)色。 通過(guò)各種屬性設(shè)置了 SeekBar的傾斜度,兩端圓半徑,角度,中心位置,起始,中心和結(jié)束的顏色,游標(biāo)的起始位置。通過(guò)這些屬性設(shè)置,就自定義一個(gè)如上圖一的 SeekBar音軌 . 播放器最重要的一部分就是音軌與歌曲進(jìn)度同步的實(shí)現(xiàn)。音軌設(shè)置了兩個(gè) TextView 34 用來(lái)顯示當(dāng)前歌曲播放的進(jìn)度時(shí)間和歌曲的長(zhǎng)度 (圖 ) 圖 音軌對(duì)象 SeekBar在歌曲剛開(kāi)始播放的時(shí)候調(diào)用方法 (),參數(shù)傳入歌曲的長(zhǎng)度。 (1)設(shè)置游標(biāo)的起始進(jìn)度為 1。然后程 序運(yùn)行如下代碼: private Runnable thread_One = new Runnable() {// 線程 public void run() { int currently_Progress = () + 1000。 (currently_Progress)。 (getFileTime( ion()))。 showLrcTwo(lrc_time, lrc_word)。(thread_One, 1000)。}}。 Android的線程的開(kāi)始是通過(guò) Handler類(lèi)來(lái)進(jìn)行的, Handler類(lèi)是線程與線程之間通信的橋梁,實(shí)現(xiàn) Runnable接口會(huì)實(shí)現(xiàn)里面的 run方法,當(dāng)線程開(kāi)始的時(shí)候, Runnable中的run方法會(huì)向 Handler發(fā)一個(gè) Message消息,這樣, Handler類(lèi)就可以接收到 run方法發(fā)送過(guò)來(lái)的不同的消息進(jìn)行不同的代碼處理。這樣就達(dá)到了各線程之間的通信。要啟動(dòng) 一個(gè)線程調(diào)用 Handler的方法 postDelayed( Runnable, 1000)表示線程睡眠時(shí)間是 1000ms 。 以上代碼意思是讓播放歌曲的線程每隔 1000ms,即每 1秒對(duì)音軌的 TextView重新設(shè)置時(shí)間且讓進(jìn)度條前進(jìn) 1秒的進(jìn)度。對(duì)音軌進(jìn)行刷新。這樣就實(shí)現(xiàn)了歌詞同步功能 SeekBar有一個(gè)監(jiān)聽(tīng)器,該監(jiān)聽(tīng)器的作用是一直保持著對(duì)進(jìn)度條的監(jiān)聽(tīng),當(dāng)我們用鼠標(biāo)向 SeekBar的各位置進(jìn)行點(diǎn)擊時(shí),它會(huì)自動(dòng)監(jiān)聽(tīng)其位置,進(jìn)行相應(yīng)的位置顯示。這也是進(jìn)度條上的游標(biāo)會(huì)不停的移動(dòng)和歌詞時(shí)間會(huì)不停的變動(dòng)的原因。 播放器播放、暫停、停止等功能 圖 如圖 :各按鈕水平放置,用的是布局中的線性布局 LinearLayout,用方法setOri
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1