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

正文內(nèi)容

基于android平臺(tái)的樂報(bào)天下系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)-資料下載頁

2025-06-24 22:17本頁面
  

【正文】 TextView重新設(shè)置時(shí)間且讓進(jìn)度條前進(jìn)1秒的進(jìn)度。對(duì)音軌進(jìn)行刷新。這樣就實(shí)現(xiàn)了歌詞同步功能。SeekBar有一個(gè)監(jiān)聽器,該監(jiān)聽器的作用是一直保持著對(duì)進(jìn)度條的監(jiān)聽,當(dāng)我們用鼠標(biāo)向SeekBar的各位置進(jìn)行點(diǎn)擊時(shí),它會(huì)自動(dòng)監(jiān)聽其位置,進(jìn)行相應(yīng)的位置顯示。這也是進(jìn)度條上的游標(biāo)會(huì)不停的移動(dòng)和歌詞時(shí)間會(huì)不停的變動(dòng)的原因。 Android的媒體播放原理:Android源程序已經(jīng)為我們封裝好了一個(gè)接口類,叫MediaPlayer。該接口在執(zhí)行行需要一個(gè)數(shù)據(jù)源,通過如下四個(gè)步驟:第一步:()。復(fù)位操作,為以后的媒體準(zhǔn)備播放作準(zhǔn)備。第二步:傳入歌曲數(shù)據(jù)源,這里也是一個(gè)數(shù)據(jù)流 (String path)。參數(shù)需要傳一個(gè)路徑,該接口類在收到路徑后將其轉(zhuǎn)化為數(shù)據(jù)源。第三步:準(zhǔn)備播放數(shù)據(jù)源,()。第四步:()。播放數(shù)據(jù)源,該數(shù)據(jù)源播放后,不再與程序 有關(guān),()()。讓其啟動(dòng)。歌曲數(shù)據(jù)源的獲得:要獲得數(shù)據(jù)源,需要我們提供給接口類一個(gè)歌曲存放路徑,而這個(gè)路徑已經(jīng)被事先放到數(shù)據(jù)庫里了,我們只需要進(jìn)行數(shù)據(jù)庫進(jìn)行操作。將里面的路徑取出。這里將調(diào)用PlayRackActivity的一個(gè)方法query()。代碼算法如下:public String query() { ContentResolver cr = getContentResolver()。 Uri uri = 。 String[] projection = { path }。 String selection = fileName=?。 String[] selectionArgs = { selectName }。 Cursor c=(uri,projection,selection,selectionArgs, null)。 if (()) { String path = (0)。 return path。 }return null。 } ,它會(huì)自動(dòng)的調(diào)用ContentProvider中的關(guān)聯(lián)數(shù)據(jù)庫,我們需用這個(gè)方法就可以操作數(shù)據(jù)庫。數(shù)據(jù)庫操作需要一個(gè)Uri 。Uri類似一個(gè)網(wǎng)絡(luò)連接的Url。Uri是數(shù)據(jù)庫唯一的標(biāo)識(shí),不同的Uri可以操作不同的數(shù)據(jù)庫表。在查詢數(shù)據(jù)庫時(shí)需要傳入一個(gè)當(dāng)前播放的歌曲名字,通過歌曲名字來查詢歌曲的路徑。 歌詞顯示模塊。:[00:]呼吸著 你的香水味即是以“時(shí)間+歌詞”的格式存儲(chǔ)。(1).xml配置文件的存儲(chǔ) Android系統(tǒng)目錄結(jié)構(gòu)如下圖:圖 15 系統(tǒng)目錄結(jié)構(gòu) 我們可以看到一個(gè)目錄為sdcard,該目錄即為擴(kuò)展卡,我們定義一個(gè)BufferedReader buffer=new BufferedReader(new FileReader(new File(/sdcard/+ musicName + .lrc)));,并將文件讀取到BufferReader中。由于我們要分別存放時(shí)間和歌詞,所以我們應(yīng)該定義兩個(gè)ListString容器來存放時(shí)間和歌詞。在讀取lrc時(shí),每次讀取一行,再用算法將時(shí)間和歌詞分開后放到一個(gè)數(shù)組里面,并分別存放在兩個(gè)list中。由于歌曲在播放時(shí)會(huì)存在界面之間的跳轉(zhuǎn),所以歌詞必須固定存放在一個(gè)文件中,而不能作為一個(gè)對(duì)象,因此,我們將兩個(gè)時(shí)間List和歌詞List再寫進(jìn)一個(gè)配置文件中。Android提供給我們一個(gè)共享文件的類SharedPreferences。它有一個(gè)方法getSharedPreferences(參數(shù)1,參數(shù)2),參數(shù)1為寫進(jìn)時(shí)的標(biāo)記,便于在從其中讀取出來時(shí)的標(biāo)記,參數(shù)2為讀取模式,有只寫模式(MODE_WORLD_WRITEABLE)和只讀模式(MODE_WORLD_READABLE),在寫之前將其置入編輯狀態(tài), editor = ()。然后對(duì)象editor可以存入一個(gè)HashMapkey,values類型的鍵值,即putString(KEY, VALUES),這樣,我們可以將List中的對(duì)象轉(zhuǎn)化成一樣長的字符中放進(jìn)配置文件中。當(dāng)寫入成功時(shí),android系統(tǒng)會(huì)自動(dòng)在目錄data/data/工程包名/shared_prefs/目錄下生成一個(gè)配置文件如圖所示:圖 16 配置文件,文件中是以map的形式存儲(chǔ)。鍵名string name=random_Play/string, 而它的值是is_Radom。如下:?xml version= encoding=utf8 standalone=yes?mapstring name=random_Playis_Random/stringstring name=lyLrcis_Show/stringnull name=order_Play/null name=single_Play//map(2) .xml配置文件的讀取 我們?nèi)砸圆シ拍J阶x取為例:當(dāng)需要用到播放模式的確定時(shí),同樣用共享文件類SharedPreferences 通過用方法getSharedPreferences(SET_MSG,MODE_WORLD_READABLE)。SharedPreferences的對(duì)象調(diào)用方法getString(sigle_Play, null),方法返回一個(gè)String類型的值,即是我們以前存儲(chǔ)進(jìn)去的String值。此方法當(dāng)該標(biāo)記不存在時(shí)會(huì)默認(rèn)返回一個(gè)null值。獲得成功后我們就可以運(yùn)用當(dāng)前的值再對(duì)程序進(jìn)行操作了。 設(shè)置模塊設(shè)計(jì) ,在設(shè)置模塊中對(duì)默認(rèn)啟動(dòng)時(shí)城市名進(jìn)行修改,點(diǎn)擊保存按鈕就會(huì)將設(shè)置好的參數(shù)會(huì)存儲(chǔ)到SQLite中。核心代碼如下://OnClick()事件public void onClick(View v) { switch (()) { case : { city = ().toString()。 updatetime = (().toString())。 ContentValues values = new ContentValues()。 (, widgetId)。 (, city)。 (, updatetime)。 (, 1)。 (, 1)。 ContentResolver resolver = getContentResolver()。 // 通過ContentResolver對(duì)象存儲(chǔ)數(shù)據(jù) (, values)。 (new int[]{widgetId})。 // 啟動(dòng)獲取天氣預(yù)報(bào)信息的后臺(tái)服務(wù) startService(new Intent(this, ))。setConfigureResult()。 finish()。 break。 } }ConfigureActivity的布局文件是res/layout/,采用了LinearLayout的布局方式。代碼如下:LinearLayout android:id=@+id/layout03 android:orientation=vertical xmlns:android= android:layout_width=wrap_content android:layout_height=wrap_content LinearLayout android:orientation=horizontal android:layout_width=fill_parent android:layout_height=wrap_content TextView android:text=城市名稱(拼音) android:layout_width=wrap_content android:layout_height=wrap_content android:textColor=@color/words /TextView EditText android:text= android:id=@+id/cityname android:layout_width=200dip android:layout_height=wrap_content /EditText /LinearLayout/LinearLayout 第六章 系統(tǒng)測試 Android SDK模擬器 Android SDK包含一個(gè)Eclipse插件,名為ADT。這個(gè)IDE工具用于開發(fā)、調(diào)試和測試Java應(yīng)用程序。也可以單獨(dú)使用Android SDK,使用命令行工具代替ADT。兩種方法都支持使用模擬器來運(yùn)行、調(diào)試和測試應(yīng)用程序。甚至90%的應(yīng)用程序開發(fā)工作都不需要真實(shí)設(shè)備。全功能的Android模擬器能夠模擬大部分的設(shè)備功能。模擬器不能模擬USB連接、照相機(jī)與視頻采集、耳機(jī)、電池和藍(lán)牙。Android模擬器使用一種名為QEMU的開源“處理器模擬器”技術(shù)來完成它的工作,此技術(shù)由Fabrice Bellard開發(fā)。這項(xiàng)技術(shù)還支持在一個(gè)操作系統(tǒng)上模擬另一個(gè)操作系統(tǒng),而不用考慮采用了何種處理器。QEMU支持在CPU級(jí)別上進(jìn)行模擬。在Android模擬器中,處理器基于ARM架構(gòu)。ARM是一種基于RISC的32位微處理器架構(gòu),其設(shè)計(jì)上的簡單性和較高的速度通過指令集中精簡的指令來實(shí)現(xiàn)。模擬器在此模擬處理器上運(yùn)行Linux的Android版本。 在Android SDK 1.6的模擬器上對(duì)樂報(bào)天下軟件的各項(xiàng)功能進(jìn)行調(diào)試和測試。調(diào)試結(jié)束后,將編譯生成的安裝文件拷貝到SD卡并安裝在手機(jī)上。 本軟件是Android移動(dòng)平臺(tái)上應(yīng)用在無線網(wǎng)絡(luò)與本地客戶端之間的軟件,使用戶能夠方便進(jìn)行即時(shí)信息數(shù)據(jù)的交互,提供了實(shí)時(shí)查看信息記錄便捷信息等功能。本系統(tǒng)中實(shí)現(xiàn)的功能有: 開發(fā)的客戶端實(shí)現(xiàn)了實(shí)時(shí)天氣查詢、日歷事項(xiàng)編輯、音樂后臺(tái)播放等功能。客戶端實(shí)現(xiàn)了在系統(tǒng)設(shè)計(jì)中用例圖列出的所有功能。本系統(tǒng)運(yùn)行在Android 1.6 SDK環(huán)境中,提供了實(shí)現(xiàn)功能必要的用戶界面。 下面就根據(jù)界面的流程圖對(duì)整個(gè)客戶端系統(tǒng)的所有界面進(jìn)行測試。用戶進(jìn)入系統(tǒng),將首先進(jìn)入啟動(dòng)界面。圖 17 軟件啟動(dòng)界面 等待3秒后,進(jìn)入首頁—天氣Tab頁。在輸入框內(nèi)輸入城市名,點(diǎn)擊“GO!”按鈕,即得到如圖18(2)所示。 點(diǎn)擊手機(jī)Menu鍵,彈出菜單,分別為“關(guān)于”、“幫助”、“退出”,如圖18(3)所示。 (1) (2) (3)圖 18 天氣模塊運(yùn)行界面圖關(guān)于界面、幫助界面如圖19所示。圖19 關(guān)于界面、幫助界面通過點(diǎn)擊軟件上方標(biāo)簽頁切換到日歷選項(xiàng)卡,如圖20(1)所示。長按日歷中某一天的日期,或點(diǎn)擊手機(jī)Menu鍵,彈出如下菜單“查看記錄/提醒”、“轉(zhuǎn)到指定日期”、“今天”、“關(guān)于”、“幫助”、“退出”,如圖20(2)所示。 (1) (2)圖20 日歷模塊顯示查看記錄/提醒界面如圖21所示,存在記錄的日期上會(huì)出現(xiàn)*號(hào)。圖21 查看記錄/提醒界面轉(zhuǎn)到指定日期如圖22所示。圖22 轉(zhuǎn)到指定日期界面通過點(diǎn)擊軟件上方標(biāo)簽頁切換到音樂選項(xiàng)卡,如圖23所示。向左或向右滑動(dòng)可循環(huán)切換播放控制界面、播放列表界面、歌詞顯示界面。圖23 音樂模塊顯示音樂界面下方播放控制條,不僅可以播放/暫停歌曲、上一曲、下一曲,還可以切換播放模式(單曲循環(huán)、順序播放、隨機(jī)播放、循環(huán)播放)、創(chuàng)建不同天氣屬性的播放列表。如圖24所示。圖24 播放列表創(chuàng)建示例非功能性測試:對(duì)系統(tǒng)要求的其他功能也進(jìn)行了一些必要的測試工作。系統(tǒng)中界面均基于統(tǒng)一的風(fēng)格,容易被用戶所接受,同時(shí)也獲得了良好的用戶體驗(yàn),在模擬器上,系統(tǒng)運(yùn)行速度比較快。(1)運(yùn)行程序時(shí),出現(xiàn)如下提示activity not started, its current task has been brought to the front原因:application已經(jīng)在設(shè)備上運(yùn)行,系統(tǒng)不會(huì)kill掉,但會(huì)把它移到前臺(tái)運(yùn)行。 (2)運(yùn)行AVD時(shí),console中打印此消息waiting for HOME (39。39。) to be launched原因:這不是一個(gè)錯(cuò)誤,只要多等一會(huì)兒就好了。但是也可以通過右鍵工程,run as Android application來解決。(3)運(yùn)行AVD時(shí),出現(xiàn)錯(cuò)誤failed to install on device 39。emulator5554!39。原因:在AVD加載的過程中,不要亂點(diǎn)已經(jīng)出現(xiàn)的模擬器上的圖標(biāo),要等待AVD完全加載完成。如果過程中出現(xiàn)紅色警告,只要重新運(yùn)行即可。到這里,基于Android手機(jī)平臺(tái)的樂報(bào)天下系統(tǒng)軟件的介紹基本結(jié)束。 第七章 總結(jié)經(jīng)過數(shù)個(gè)月的努力,Android平臺(tái)的樂報(bào)天下系統(tǒng)軟件終于完成了。由于對(duì)JAVA濃厚的興趣引發(fā)了我對(duì)Android的好奇心,從一開始什么都不懂到一直摸索學(xué)習(xí),終于完成了這個(gè)軟件。對(duì)Android系統(tǒng)技
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1