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

正文內(nèi)容

基于android的手機應(yīng)用開發(fā)-預(yù)覽頁

2025-01-07 02:31 上一頁面

下一頁面
 

【正文】 義為常量列數(shù)設(shè)成 10行數(shù)設(shè)成 12其中行數(shù) 和列數(shù)包括邊界也就是說實際上棋盤大小為 810 圖片大小設(shè)置成 45 private Main app 這個是對程序 activity 的一個引用后面用得到 private GameView gameView 這個變量上面提到的自定義的視圖用它來呈現(xiàn)游戲界面 private int[][]map 這是保存程序的布局的數(shù)組前面視圖中的 map 數(shù)組只是對這個數(shù)組的一個引用我們在控制器為它分配空間生成初始化布局 private List path new ArrayList 這個變量在視圖中提到過是保存連線的起始點及折 點 對界面的刷新有兩部分一個是為了實現(xiàn)連線消除動畫對 GameView 延時刷新另一部分是更新游戲剩余時間這部分需要有一個 Timer由于 Timer會另起一個線程而刷新界面需要在 UI 線程中執(zhí)行所以程序用到了 Handler 這兩部分刷新我們通過給一個定義好的 Handler 發(fā)不同的消息實現(xiàn) 定義了 RefreshHandler 和它的一個實例 redrawHandler 其中 sleep 方法實現(xiàn)了延時刷新功能在 handleMessage 方法中對這兩種消息分別處理游戲視圖延時刷新后需要判斷是否已經(jīng)完全消除即 map數(shù)組元素全為 0如果 是這樣則通過將activity 狀態(tài)置為 STATE_WIN 回到菜單否則需要判斷游戲是否還能往下進(jìn)行來決定是否需要調(diào)整布局 對于游戲的倒計時和幫助次數(shù)的更新這里通過了一個 TimerTask 來實現(xiàn)TimerTask 是對于游戲的倒計時和幫助次數(shù)的更新還需要更新剩余時間剩余時間的計算方 remainTime totalTime SystemcurrentTimeMillis startTime 1000 剩余時間的計算方法 SystemcurrentTimeMillis 計時方法是毫秒計時法得除以 1000 才是秒計時 這里定義了游戲總時間為 200s 在 TimerTask 中計算出游戲剩余時間并向redrawHandler 發(fā)送消息 在游戲控制器中提供了 startGame 方法用來開始一個新的游戲 public void startGame Main m generateMap help 100 幫助次數(shù)為 100 remainTime totalTime resume m 可以看到在 startGame方法中先調(diào)用了 generateMap來生成游戲布局將幫助次數(shù)和剩余時間變量進(jìn)行初始化之后調(diào)用了 resume 方法其實開始一個新游戲和恢復(fù)游戲的區(qū)別就在于前者對游戲數(shù)據(jù)進(jìn)行初始化而后者這些數(shù)據(jù)已經(jīng)有了值如果你想對游戲數(shù)據(jù)持久化除了 activity 中的游戲狀態(tài)還需要保存控制其中的maphelp以及 remainTime變量 Resume是繼續(xù)一個游戲的方法游戲暫停時計時器停止計時在 resume 方法中實例化并初始化了 GameView 類 Pause 和 resume 是對應(yīng)的不過 pause 方法很簡單只需要把 timer 停掉在resume方法中實例化并初始化了 GameView類并將這個視圖放到在 xml文件中定義的 LinerLayout 點的位置上在這里注冊了 GameView 的 OnItemClickListener監(jiān)聽記錄開始時間并每隔 100ms 啟動一次前面定義的 TimerTask itemClickListener方法中需要調(diào)用 link方法其中 link方法是連連看的核心算法判斷兩個棋子是否能連如果能連將連線起始點和折點放到 path 變量中g(shù)enerateMap 是生成初始化布局的方法其中要調(diào)用 shuffle 方法 這個算法選將棋子按順序排好再隨即交換來大亂布局循環(huán)變量都是從 1 到定義的長度減 1 不對邊界處理其中 shuffle 方法 RefreshHandler 定義中也要調(diào)用在布局無解的情況也需要調(diào)用 die 是判斷布局無解的方法這里用了遍歷算法但稍做了點優(yōu)化減少了一個循環(huán)次數(shù)我們的期盼不是很大這樣遍歷起來也比較快這里同樣用到了 link 方法 link方法同前面算法里所說的一樣這里分了 3種情況不過其實有最后一種情況就夠了前面兩種情況可以看作最后一種情況的特例在確認(rèn)能夠相連后把起始點和折點放到 path 變量中去其中用到了 linkD 方法這個方法判斷兩個棋子是否能直接相連 判斷兩個棋子是否能直連比較簡單分為橫連和豎連兩種情況在 link 函數(shù)中還 用到了 expandH和 expandV兩個方法這兩個方法分別對應(yīng)前面算法中提到的水平掃描延伸和垂直延伸結(jié)果放到定義的 ArryList 中 需要特別說明的是由于本論文傾向于 UI 方面的介紹對于每一種算法的具體實現(xiàn)方法這里不作詳細(xì)說明第章 31 Android 多媒體開發(fā)背景介紹 Android的核心代碼在去年 3月底有了一次比較重大的改動尤其是多媒體方面的改動比較大主要目的是為了更好地實現(xiàn) Camcoeder 以及進(jìn)一步實現(xiàn) Video Telephony 這些改動也是軟硬件協(xié)調(diào)結(jié)構(gòu)和性能這種的一個結(jié)果 Open Core 是 Android 多媒體框架的核心所有 Android 平臺的音頻視頻的采集以及播放等操作都是通過它來實現(xiàn)他也被稱為 PVPacket VideoPacket Video是一家專門提供多媒體解決方案的公司程序員可以通過 Open Core方便快速地開發(fā)出想要的多媒體應(yīng)用程序例如錄音播放回放視頻會議流媒體播放等等 Open Core 是一個多媒體的框架從宏觀上來看它主要包含了兩大方面的內(nèi)容 1PVPlayer提供媒體播放器的功能完成各種音頻 Audio視頻 Video流的回放Playerback 功能 2PVAuthor 提供媒體流 記錄的功能完成各種音頻視頻流以及靜態(tài)圖像的捕獲功能 PVPlayer 和 PVAuthor以 SDK 的形式提供給開發(fā)者可以在這個 SDK 智商構(gòu)建多種應(yīng)用程序和服務(wù)在移動終端中常常使用多媒體應(yīng)用程序例如媒體播放器照相機錄像機錄音機等等事實上 Open Core 中包含的內(nèi)容非常多從播放的角度PVPlayer 輸出的 Source 是文件或者網(wǎng)絡(luò)媒體流輸出 Sink 到音頻視頻的輸出設(shè)備其基本功能包含了媒體流控制文件解析音頻視頻流的解碼 Decode 等方面的內(nèi)容除了從文件中播放媒體文件之外還包含了與網(wǎng)絡(luò)相關(guān)的 RTSP 流在媒體流記錄的方 面 PVAuthor 輸入的是照相機麥克風(fēng)等設(shè)備輸出的是各種文件包含了流的同步音頻視頻流的編碼 Encode 以及文件的寫入等功能 32 MediaRecorder 類的介紹 錄制音頻的程序要多次用到 MediaRecorder 類故在這里做一下詳細(xì)介紹MediaRecorder類用來進(jìn)行媒體采樣包括音頻和食品 Media作為狀態(tài)機運行需要設(shè)置不同的參數(shù)比如原設(shè)備和格式設(shè)置后可執(zhí)行任何時間長度的錄制指導(dǎo)用戶停止 MediaRecorder 類的工作流程如下 圖 31 MediaRecorder 類的工作流程圖 MediaRecorder 在底層同樣是通過 Open Core 來實現(xiàn)的但是要開發(fā)應(yīng)用時需要使用 Android 為我們提供的 Java 接口 33 設(shè)計思路概述 要實現(xiàn)視頻錄制的功能首先我們要研究一下怎么實現(xiàn)音頻的錄制所以這個程序我也是分兩部分完成的先實現(xiàn)了音頻的錄制然后再實現(xiàn)視頻的錄制現(xiàn)在幾乎每個手機都有錄音功能其用途也很廣比如我們需要記錄某些重要的內(nèi)容時手頭又沒有筆之類的工具這時我們就可以通過錄音功能就愛你過通話內(nèi)容錄制下來而且我們通??梢詫⒆约旱匿浺粼O(shè)置為個性鈴聲等現(xiàn)在我們要實現(xiàn)錄音功能就得使用 MediaRecorder 類這里將 實現(xiàn)一個擁有簡易音頻錄制功能的程序錄制一個 Media 音頻資源大致上可以分為 7 個步驟 1 使用 new 創(chuàng)建一個實例 androidmediaMediaRecorder 2 創(chuàng)建一個 androidcontentContentValues 實例并設(shè)置一些標(biāo)準(zhǔn)的屬性像TITLETIMESTAMP 最重要的是 MIME_TYPE 3創(chuàng)建一個要放置的文件的路徑這可以通過 androidcontentContentResolver在內(nèi)容數(shù)據(jù)庫中來創(chuàng)建一個入口并且自動地標(biāo)志一個取得這個文件的路徑 4 使用 MediaRecordersetAudioSource 方法來設(shè)置音頻資源這將會很可能使用到 MediaRecorderAudioSourceMIC 5 使用 MediaRecordersetOutputFormat 方法設(shè)置輸出文件格式 6 用 MediaRecordersetAudioEncoder 方法來設(shè)置音頻編碼 7 最后 prepare 和 start 所錄制的音頻 stop 和 release 在要結(jié)束的時候調(diào)用在最新的 Android 15 版本中開始支持視頻錄制功能通過 MediaRecorder 類的相關(guān)方法可以錄制視頻保存成為 MPEG4H263 和 H264 編碼的視頻有關(guān)的開發(fā)文檔中 MediaRecorder 類 加 入 了MediaRecorderVideoEncoderMediaRecorderVideoSource 類提供了setPreviewDisplay Surface sv 這個錄制預(yù)覽窗口但需要注意的是執(zhí)行前需要prepare 下其中 setVideoFrameRate int rate 可以設(shè)置幀率 而 setVideoSize int width int height 設(shè) 置 視 頻 的 分 辨 率 最 后 setVideoSource int video_source 是設(shè)置視頻源目前只能為 Camera等到 Android支持外接攝像頭時會有新的方式由于模擬器上沒有 sd 卡所以視頻錄制的部分并不能在模擬器上演示只能在真機上進(jìn)行調(diào)試測試結(jié)果也是成功的如圖所示 35 代碼的實現(xiàn)與分析 這里僅做簡要的介紹詳細(xì)地代碼見附錄 2 private Button StartButton private Button StopButton 設(shè) 置 了 兩 個 按 鈕 一 個 是 開 始 鍵 一 個 是 停 止 鍵 if EnvironmentgetExternalStorageState equals androidosEnvironmentMEDI A_MOUNTED 這個條件語句用來檢測是否存在 SD 卡如果不存在屏幕就會提示沒有 SD 卡 mRecAudioFile FilecreateTempFile strTempFileamr mRecAudioPath 這條語句用來創(chuàng)建錄音文件 mMediaRecorder new MediaRecorder 實例化 MediaRecordermMediaRecordersetAudioSource MediaRecorderAudioSourceMIC 設(shè) 置 麥 克 風(fēng) mMediaRecordersetOutputFormat MediaRecorderOutputFormatDEFAULT 設(shè)置輸出文件格式 mMediaRecordersetAudioEncoder MediaRecorderAudioEncoderDEFAULT 設(shè) 置 音 頻 文 件 的 編 碼 mMediaRecordersetOutputFile mRecAudioFilegetAbsolutePath 設(shè)置輸出文件的路徑 Android 多媒體錄制中的錄像就是 AudioVideo 所以還要加點 東西 path sdcardv3gp recordersetVideoSource MediaRecorderVideoSourceCAMERA recordersetAudioSource MediaRecorderAudioSourceMIC recordersetOutputFormat MediaRecorderOutputFormatTHREE_GPP recordersetVideoSize 176144 recordersetVideoFrameRate 15 recordersetVideoEncoder MediaRecorderVideoEncoderH263 recordersetAudioEncoder MediaRecorderAudioEncoderAMR_NB recordersetOutputFile path 每行代碼的作用與錄制音頻的代碼相類似這里不作詳細(xì)說明 第章 1 配置環(huán)境變量右鍵我的電腦 屬性 高級 環(huán)境變量 選擇系統(tǒng)變量里面的 path 點編輯 2 這時出現(xiàn)對話框變量名是 path 變量值就是要找到你的 JDK 所安裝的目錄下的 bin 文件夾的路徑注意如果自己的 path 還有其他的值的話要用來區(qū)分英文分號然后點確定編輯完成 3 還需要配置另一個環(huán)境變量也是系統(tǒng)變量里面的選擇新建然后在變量名里面寫入 classpath變量值里面寫入你的 JDK所安裝的目錄下的 lib文件夾下的toolsjar 和 dtjar 然后點確定再確定就完成了 JDK 的安裝和環(huán)境變量的配置了Layout 顯示如下 圖 41 mainxml 的 Layout 顯示 。
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1