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

正文內(nèi)容

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

2025-07-25 00:42 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 ite數(shù)據(jù)庫(kù)。 Android系統(tǒng)為開(kāi)發(fā)者提供了一個(gè)MediaStore這個(gè)類(lèi),它是一個(gè)多媒體數(shù)據(jù)庫(kù),Android中多媒體信息都可以從這里提取。這個(gè)MediaStore包括了多媒體數(shù)據(jù)庫(kù)的所有信息,包括音頻,視頻和圖像等。存放媒體信息如TITLE(標(biāo)題)、ARTIST(藝術(shù)家)、ALBUM(專(zhuān)輯封面)、SIZE(大小)和DATA(路徑)等字段。 MIDI音樂(lè)播放器數(shù)據(jù)庫(kù)設(shè)計(jì)階段,只需要兩張表,第一張表存放所有的歌曲信息(即MediaStore類(lèi),只需通過(guò)Uri:EXTERNAL_CONTENT_URI來(lái)訪問(wèn),就可以得到想要的歌曲信息字段,MIDI音樂(lè)播放器用到的字段有:_ID(歌曲ID)、TITLE(標(biāo)題)、ARTIST(藝術(shù)家)、DATA(路徑)、ALBUM(專(zhuān)輯封面)、DURATION(歌曲時(shí)間)和ALBUM_ID(專(zhuān)輯封面ID)。,用于存放用戶自己添加歌曲的信息。(favourite)字段名稱(chēng)數(shù)據(jù)類(lèi)型允許空說(shuō)明_IdINTEGERNot null主鍵Music_idINTEGERNot null歌曲IDMusic_nameTEXTNot null歌曲名字Music_aristTEXT演唱者M(jìn)usic_pathTEXTNot null路徑Music_ablumINTEGER專(zhuān)輯封面IDMusic_timeINTEGERNot null歌曲長(zhǎng)度 整體流程設(shè)計(jì) MIDI音樂(lè)播放器整體流程。 播放控制流程設(shè)計(jì) 播放控制模塊是整個(gè)設(shè)計(jì)控制的核心部分,用戶只需通過(guò)簡(jiǎn)單的觸摸操作就可以實(shí)現(xiàn)對(duì)歌曲播放的控制。 歌曲列表流程設(shè)計(jì) MIDI音樂(lè)播放器在初始化界面時(shí),從系統(tǒng)數(shù)據(jù)庫(kù)獲得SD內(nèi)所有音樂(lè)信息;,將這些得到的信息構(gòu)建到列表呈現(xiàn)給用戶,如果這是用戶第一次運(yùn)行MIDI音樂(lè)播放器。掃描完歌曲文件后,掃描/SDCard/。,、添加和刪除操作,然后刷新列表信息。 播放模式流程設(shè)計(jì) 播放模式控制即循環(huán)播放、隨機(jī)播放、順序播放和單曲循環(huán),其中前三種播放模式采用循環(huán)切換的模式進(jìn)行選擇,單曲循環(huán)獨(dú)立開(kāi)來(lái),進(jìn)行開(kāi)啟或者關(guān)閉。第五章 詳細(xì)設(shè)計(jì) MIDI播放器UI設(shè)計(jì) 對(duì)于Android來(lái)說(shuō),一個(gè)好的應(yīng)用界面的必備條件是:內(nèi)容清晰、指示明白、屏幕美觀和有親切感。UI通常包含圖形和文字,應(yīng)用界面的設(shè)計(jì)是對(duì)控件進(jìn)行適當(dāng)?shù)娜∩峒肮δ艿倪x擇和處理的過(guò)程(對(duì)控件進(jìn)行事件監(jiān)聽(tīng))。在MIDI播放器的設(shè)計(jì)過(guò)程中,也是對(duì)設(shè)計(jì)的方法進(jìn)行反復(fù)的推敲、琢磨,才能使其達(dá)到完美的境界,MIDI播放器界面的整體風(fēng)格為經(jīng)典的黑白色調(diào),界面設(shè)計(jì)更簡(jiǎn)潔,更大方。 Android的界面寫(xiě)在“res/layout”下面的布局文件中,一般情況下,一個(gè)布局文件對(duì)應(yīng)一個(gè)界面,這是MIDI播放器所有的布局文件。雖然Android生成屏幕的方有三種(第二章已介紹),但是一般使用xml文件配置生成,這里有必要說(shuō)一下,其實(shí)Android界面的代碼編寫(xiě)有點(diǎn)像HTML,添加框架,編寫(xiě)代碼,生成控件。MIDI音樂(lè)播放器的每一個(gè)可視化界面,都有其的唯一的布局配置文件,該文件里面有各種布局方式:線性布局(Linear Layout)和相對(duì)布局(Relative Layout)等,通過(guò)各種資源文件如圖像,文字,顏色的引用,和這幾種布局的完美組合,這樣就形成了MIDI播放器不同的可視化界面和絢爛的效果。下面我詳細(xì)介紹播放器中的幾個(gè)重要布局配置文件的設(shè)計(jì)和實(shí)現(xiàn)。 歌曲列表界面設(shè)計(jì) 在程序初始化后,呈現(xiàn)給用戶的界面就是歌曲列表界面。歌曲列表界面實(shí)現(xiàn)了線性布局(Linear Layout)和相對(duì)布局(Relative Layout)的相互嵌套,歌曲信息通過(guò)ListView控件顯示,它以列表的形式展示具體內(nèi)容,并且能夠根據(jù)數(shù)據(jù)的長(zhǎng)度自適應(yīng)顯示,實(shí)現(xiàn)代碼如下所示。ListView android:id=@+id/musiclist android:layout_height=fill_parent android:layout_width=fill_parent android:layout_marginLeft=6dp android:layout_marginRight=6dp android:cacheColorHint=00000000 android:divider=@color/divider_color android:dividerHeight=1dp android:listSelector=@drawable/selector_list_item android:layout_below=@+id/relativeLayout1/ListView在歌曲播放列表使用了SlidingDrawer(滑動(dòng)式抽屜)這個(gè)控件,SlidingDrawer隱藏屏外的內(nèi)容,并允許用戶通過(guò)handle以顯示隱藏內(nèi)容,將播放控制界面放在了這個(gè)隱藏內(nèi)容中,它可以垂直或水平滑動(dòng),布局代碼實(shí)現(xiàn)如下所示。 android:id=@+id/slidingDrawer android:layout_width=fill_parent android:layout_height=fill_parent android:handle=@+id/handle android:content=@+id/content android:topOffset=10dp include layout=@layout/sliderdrawer_handle_layout/include include layout=@layout/sliderdrawer_content_layout/include /有時(shí)Android自帶的SlidingDrawer控件不能滿足開(kāi)發(fā)者的需求,重寫(xiě)SlidingDrawer這個(gè)控件,將會(huì)為整個(gè)系統(tǒng)的界面布局增色不少,重寫(xiě)實(shí)現(xiàn)代碼如下所示。 /* * 獲取控件的屏幕區(qū)域 */ public Rect getRectOnScreen(View view){ Rect rect = new Rect()。 int[] location = new int[2]。 View parent = view。 if(() instanceof View){ parent = (View)()。 } (location)。 (rect)。 (location[0], location[1])。 return rect。 } public boolean onInterceptTouchEvent(MotionEvent event) { // 觸摸位置轉(zhuǎn)換為屏幕坐標(biāo) int[] location = new int[2]。 int x = (int)()。 int y = (int)()。 (location)。 x += location[0]。 y += location[1]。 if(mTouchableIds != null){ for(int id : mTouchableIds){ View view = findViewById(id)。 if (()) { Rect rect = getRectOnScreen(view)。 if((x,y)){ if (() == ) { if (mTouchViewClickListener != null) { (view)。 } } return true。 } } } } //抽屜行為控件 if(() == amp。amp。 mHandleId != 0){ View view = findViewById(mHandleId)。 Rect rect = getRectOnScreen(view)。 if((x, y)){//點(diǎn)擊抽屜控件時(shí)交由系統(tǒng)處理 { return (event)。 } }else{ return false。 } } return (event)。 } @Override public boolean onTouchEvent(MotionEvent event) { return (event)。 }} 播放控制界面設(shè)計(jì)在MIDI音樂(lè)播放器界面設(shè)計(jì)中,將播放控制界面放在了SlidingDrawer這個(gè)控件的隱藏內(nèi)容中,只需點(diǎn)擊歌曲列表界面的下方的按鈕,播放控制界面會(huì)從屏幕下方滑出也可以拖動(dòng),也可以在此隱藏。 播放控制界面中的重點(diǎn)布局就是自定義的SeekBar(拖動(dòng)條)這個(gè)控件的實(shí)現(xiàn),實(shí)現(xiàn)的方法就是修改android:progressDrawable和android:thumb這兩個(gè)屬性,這兩個(gè)屬性自己編寫(xiě),實(shí)現(xiàn)代碼如下所示。SeekBar android:id=@+id/seekBar android:layout_width=fill_parent android:layout_height=wrap_content android:layout_toRightOf=@id/CurTime android:layout_toLeftOf=@id/TotalTime android:paddingLeft=5dp android:paddingRight=5dp android:max=100 android:progressDrawable=@drawable/seekbar_style android:thumb=@drawable/seekbar_thumb android:background=@drawable/progress_buffering /SeekBar:?xml version= encoding=utf8?layerlist xmlns:android= item android:id=@android:id/secondaryProgress clip android:drawable=@drawable/progress_buffering / item android:id=@android:id/progress clip android:drawable=@drawable/progress_playing //layerlist :?xml version= encoding=utf8?selector xmlns:android= item android:state_pressed=true android:drawable=@drawable/thumb_f / item android:drawable=@drawable/thumb_normal //selector 播放器初始化實(shí)現(xiàn) MIDI音樂(lè)播放器運(yùn)行之后,需要一個(gè)初始化的過(guò)程,這個(gè)過(guò)程實(shí)際就是對(duì)SD卡中所有音樂(lè)一個(gè)掃描的過(guò)程,即獲取所有音樂(lè)的相關(guān)信息,如歌曲的名字和演唱者等。初始化過(guò)程中,獲取音樂(lè)的操作做在了一個(gè)線程Thread內(nèi),后臺(tái)進(jìn)行查詢數(shù)據(jù)庫(kù)操作,線程實(shí)現(xiàn)代碼如下所示。 private ArrayListMusicData setMusicDatas() { // TODO Autogenerated method stub Cursor cursor=(, musicdata, null, null, null)。 if(cursor!=null){ ()。 int musicID=()。 int musicTitle=()。 int musicTime=()。 int musicArtist=()。 int musicPath=()。 int mu
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1