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

正文內(nèi)容

基于android手機平臺的音樂播放器本科畢業(yè)論文-閱讀頁

2024-07-31 11:38本頁面
  

【正文】 d:name=/ category android:name= / /intentfilter /activity 這是系統(tǒng)確定的首先要啟動的 Activity 是 PlayRackActivity。當(dāng)我們需要通過一個組件觸發(fā)另一個組件時,我們將設(shè)定 action 和 category 的其它屬性值,系統(tǒng)會根據(jù)我們設(shè)定的屬性值去 的 application 中尋找標識,任何一個 Activity 的 action 和 category 是唯一,所以程序在任何時候都能唯一啟動一個 Activity,這樣,不同的 Activity 之間的跳轉(zhuǎn)就實現(xiàn)了。 如果我們需要對網(wǎng)絡(luò)進行訪問,比如打開一個網(wǎng)頁,剛我還需要設(shè)置一個網(wǎng)絡(luò)訪問權(quán)限 usespermission,將其的值設(shè)置為android:name=,我們就可以訪問網(wǎng) 絡(luò)了。 當(dāng)程序的任何一個組件要用到時,都必須在 文件中聲明。每個組件里面還有很多的屬性,會根據(jù)程序的具體需要定義不同的屬性。 (2) 隱式方式 隱式方式是通過過濾器來過濾完成的,啟動的組件必須滿足 action 和category 的條件才能夠啟動該組件。兩種啟動方式都可以通過程序 setAction( ACTION 常量)和startActivity( intent)或配置文件兩種方式來實現(xiàn)組件的跳轉(zhuǎn)。這樣就可以形成不同的可視化界面和炫麗的效果。 setContentView()。 18 下面為 布局文件代碼結(jié)構(gòu)如下: ?xml version= encoding=utf8? AbsoluteLayout LinearLayout /LinearLayout SeekBar/SeekBar LinearLayout/LinearLayout /AbsoluteLayout 在絕對布局 AbsoluteLayout下嵌套兩種線性布局 LinearLayout和SeekBar,第一個 LinearLayout實現(xiàn)了標題和歌曲名的顯示位置,通過AbsoluteLayout布局設(shè)置 LinearLayout絕對坐標來控制標題的位置。每個 Widget內(nèi)有多種屬性,可以設(shè)置該 Widget的坐標,大小,背景和顏色等參數(shù)。所以我在這里自定義了一個音軌 SeekBar, 在 , SeekBar的代碼如下: SeekBar android:id=+id/seekbar android:layout_width=245px android:layout_height=20px android:layout_x=40px 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 為音軌游標的圖片資源 android: progressDrawable=drawable/seekbar_style為SeekBar條的風(fēng)格 style。通過各種屬性設(shè)置了 SeekBar的傾斜度,兩端圓半徑,角度,中心位置,起始,中心和結(jié)束的顏色,游標的起始位置。音軌設(shè)置了兩個 TextView用來顯示當(dāng)前歌曲播放的進度時間和歌曲的長度 (圖 ) 圖 音軌對象 SeekBar在歌曲剛開始播放的時候調(diào)用方法(),參數(shù)傳入歌曲的長度。然后程序運行如下代碼: private Runnable thread_One = new Runnable() {// 線程 public void run() { int currently_Progress = () + 1000。 (getFileTime( ion()))。(thread_One, 1000)。 Android的線程的開始是通過 Handler類來進行的, Handler類是線程與線程之間通信的橋梁,實現(xiàn) Runnable接口會實現(xiàn)里面的 run方法,當(dāng)線程開始的時候, Runnable中的 run方法會向 Handler發(fā)一個 Message消息,這樣,Handler類就可以接收到 run方法發(fā)送過來的不同的消息進行不同 的代碼處理。要啟動一個線程調(diào)用 Handler的方法postDelayed( Runnable, 1000)表示線程睡眠時間是 1000ms 。對音軌進行刷新。這也是進度條上的游標會不停的 移動 21 和歌詞時間會不停的變動的原因。將其設(shè)置為水平。配置文件代碼結(jié)構(gòu)如下: LinearLayout ImageButton /ImageButton ImageButton /ImageButton ImageButton /ImageButton ImageButton /ImageButton ImageButton /ImageButton /LinearLayout android的媒體播放原理: android源程序已經(jīng)為我們封裝好了一個接口類,叫 MediaPlayer。復(fù)位操作,為以后的媒體準備播放作準備。參數(shù)需要傳一個路徑,該接口類在收到路徑后將其轉(zhuǎn)化為數(shù)據(jù)源。 第四步: ()。讓其啟動 。將里面的路徑取出。代碼算法如下: public String query() { ContentResolver cr = getContentResolver()。 String[] projection = { path }。 String[] selectionArgs = { selectName }。 if (()) { String path = (0)。 }return null。數(shù)據(jù)庫操作需要一個 Uri 。 Uri 是數(shù)據(jù)庫唯一的標識,不同的 Uri可以操作不同的數(shù)據(jù)庫表。 播放列表功能 播放列表界面(如圖 ) 圖 布局層次關(guān)系如下: ?xml version= encoding=utf8? LinearLayout LinearLayout TextView/TextView /LinearLayout 23 ListView /ListView LinearLayout ImageButton /ImageButton /LinearLayout /LinearLayout 在 Android里面,有一個視圖叫 ListView,其特點是一個有 BaseAdapter的屬性,從下到下,或從左到右的顯示方式。我們定義一個類 MusicAdapter 繼承了BaseAdapter,然后通過算法對這個適配器進行擴展,擴展成為第一行能顯示一張圖片和一個歌曲名字。該方法返回一個 View,即視圖。 ListView同樣有一個監(jiān)聽器 new onItemClickListener(){ Override public void onItemClick(AdapterView? arg0, View arg1, int arg2,long arg3) {}},我們只要實現(xiàn)這個方法,就可以監(jiān)聽鼠標的點擊事件,當(dāng)鼠標點擊到每一行時,可以通過 (int position)得到該行上的信息。本程序的思路是當(dāng)鼠標點擊一行,會跳轉(zhuǎn)到另一個 Activity里面,這個 Activity和歌曲列表類似,也是一個 ListView,該界面將在下一節(jié)介紹。因為每次歌曲列表顯示時會查詢數(shù)據(jù)庫中的歌曲列表。 Dialog的創(chuàng)建: , AlertDialog alert =()。 該 Dialog上有兩個菜單選項,第一個為“從 SD卡”,點擊會跳轉(zhuǎn)到SDcard界面中。 (播放 )。 (新增 )。 (全部移除 )。 然后通過 ()。 View getView(int position, View convertView, ViewGroup parent) { convertView = (, null)。 = (ImageView) ()。 } ListAdapter每一行都是一個 LineaLayout布局,水平放置一個圖片一個String。 菜單功能實現(xiàn) 菜單有 6個功能:播放,詳細,新增,移除,全部移除,設(shè)置。 播放功能:點擊后事件觸發(fā),傳入歌曲名字,讓程序操作該名字進行播放。 新增功能:點擊后事件觸發(fā),進入到 SDCard中,進行歌曲添加選擇。從數(shù)據(jù)庫中刪除選中的歌 曲。 設(shè)置功能:點擊后事件觸發(fā),進入到播放設(shè)置列表。通過歌曲名字刪歌曲,算法如下: del_One(String musicName) { ContentResolver cr = getContentResolver()。 String where = fileName=?。 (uri, where, selectionArgs)。 startActivity(intent)。 27 播放設(shè)置界面 界面實現(xiàn) 圖 配置文件 : ?xml version= encoding=utf8? LinearLayout RadioGroup RadioButton /RadioButton RadioButton /RadioButton RadioButton /RadioButton /RadioGroup /LinearLayout ToggleButton/ AbsoluteLayout ImageButton/ ImageButton/ /AbsoluteLayout 最外層的 LinearLayout里面嵌套多層 LineaLayout,子 LinearLayout里面嵌套著單選按鈕 RatioGroup 和開關(guān)按鈕 ToggleButton。 (1)播放模式 28 用的是一個組件 RadioGroup,這個組件有單項選擇的功能,里面有RadioButton項,多個 RadioButton項只能同時選中一個,該 播放器播放模式有單曲循環(huán),隨機播放,順序播放等功能。 RadioGroup可以進行單項選擇操作,如圖 () 圖 通過 (),如果返回 true,剛該項被選中。如圖 (): 圖 ToogleButton同樣有一個監(jiān)聽器,可以獲得 ToogleButton的不同狀態(tài)。并且用 ()。 播放模式狀態(tài)和歌詞顯示狀態(tài)的操作結(jié)果都將以一個標志,被寫在一個配置文件中,這是關(guān)于 Android的存儲方式,將在后面主要介紹。我們查看 .Lrc文件中的歌詞格式為: [00:]呼吸著 你的香水味 即是以“時間 +歌詞”的格式存儲。指定 .Lrc文件存在的路徑,并將文件讀取到 BufferReader中。在讀取 lrc時,每次讀取一行,再用算法將時間和歌詞分開后放到一個數(shù)組里面,并分別 存放在兩個 list中。它有一個方法 getSharedPreferences(參數(shù) 1,參數(shù) 2),參數(shù) 1為寫進時的標記,便于在從其中讀取出來時的標記,參數(shù) 2為讀取模式,有只寫模式( MODE_WORLD_WRITEABLE)和只讀模式( MODE_WORLD_READABLE),在寫 之前將其置入編輯狀態(tài),用靜態(tài)方法 editor = ()。鍵名string name=random_Play/string, 而它的值是 is_Radom。 SharedPreferences的對象調(diào)用方 法getString(sigle_Play, null),方法返回一個 String類型的值,即是我們以前存儲進去的 String值。獲得成功后我們就可以運用當(dāng)前的值再對程序進行操作了。由于程序只關(guān)系到目錄 /sdcard的目錄下的文件,所以用程序屏蔽了其它的目錄,這里只顯示兩個目錄 /sdcard和 /system。 當(dāng)選中sdcard會進入到圖 ,該目錄下只顯示媒體文件,如 .Mp3,和 sdcard下的子目錄。當(dāng)有媒體文件時才會出現(xiàn)添加 Dialog。點擊確定按鈕后,程序會查詢數(shù)據(jù)庫中的歌曲,調(diào)用方法query(fileName),根據(jù)歌曲名字查詢,如果歌曲不存在,則調(diào)用方法insertMusic(file),如果該歌曲名字已經(jīng)存在,則彈出 Dialog對話框(圖),當(dāng)添加成功后,程序會跳轉(zhuǎn)到播放列表中以顯示添加結(jié)果。整個界面是一個 ListView布局,而每一行是一個 LinearLayout水平方式布局,上面將放置一個圖
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1