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

正文內(nèi)容

基于j2me手機(jī)閱讀器畢業(yè)設(shè)計(jì)最終提交版(編輯修改稿)

2025-07-15 14:14 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 面的操作就是先將屏幕以fillRect()的方式清除,再將下一張圖片畫(huà)在屏幕上,然而反復(fù)的清除及重繪會(huì)造成屏幕的閃爍現(xiàn)象(flicker),因此使用雙重緩沖的好處就是在背景進(jìn)行這個(gè)清除及重繪的操作,再將完成的繪圖拷貝到屏幕上,由于用戶(hù)看不到清除的操作,因此就不會(huì)出現(xiàn)閃爍的現(xiàn)象了。不過(guò)在某些MIDP的實(shí)現(xiàn)上已經(jīng)加上了雙重緩沖的支持,因此在處理前應(yīng)先利用Canvas類(lèi)的isDoubleBuffer()方法來(lái)判斷。 J2ME的流行促進(jìn)幾個(gè)運(yùn)營(yíng)商和制造商開(kāi)發(fā)了一些支持游戲的類(lèi),但是,這卻造成了游戲缺乏可移植性的問(wèn)題,例如,很難將使用Siemens的Sprite類(lèi)的游戲移植到Nokia上。,這些游戲移植性問(wèn)題初步得到了解決。GameCanvas、Sprite、Layer、LayerManager、TiledLayer五個(gè)與游戲開(kāi)發(fā)相關(guān)的類(lèi)。其中 Layer類(lèi)一般不會(huì)直接用到。Game類(lèi)的出現(xiàn)不僅降低了錯(cuò)誤出現(xiàn)的幾率,也使游戲代碼變的更小,因?yàn)殚_(kāi)發(fā)者不需要自己編寫(xiě)象Sprite這種例子。下面將簡(jiǎn)要介紹Game類(lèi)。GameCanvas類(lèi)繼承自Canvas,所以具有Canvas所具有的功能,還額外增加了一些便于游戲設(shè)計(jì)的功能。比如: GameCanvas類(lèi)直接提供了getKeyStates(),使程序員可以在同一個(gè)線(xiàn)程自己偵測(cè)按鍵的狀態(tài)。GameCanvas類(lèi)提供了flushGraphics()的功能,實(shí)現(xiàn)了雙緩沖技術(shù)。所謂的Sprite,就是畫(huà)面上獨(dú)立移動(dòng)的圖形。Sprite類(lèi)是繼承自L(fǎng)ayer的用于存儲(chǔ)多楨的基本可視元素。不同的frame可交相顯示,構(gòu)成動(dòng)態(tài)的效果。圖片可翻轉(zhuǎn)、顛倒、由一個(gè)主角圖片就可以方便的得到所有方向的顯示狀態(tài),相比原先只能使用Canvas繪圖,需要將所有方向的主角圖象都繪制在png圖象中簡(jiǎn)化了許多。Sprite也可以從整合的圖象中讀圖,讀圖時(shí)將把大圖分解為若干等寬等高的小圖。每個(gè)小圖按照其排列順序有相應(yīng)的序號(hào),在程序中調(diào)用其序號(hào),就可以繪制出相應(yīng)的圖片。LayerManager提供控制整體畫(huà)面層的控制。它包括了一系列自動(dòng)獲取了代號(hào)和位置的層,簡(jiǎn)化了各層加入游戲畫(huà)面的過(guò)程,提供了自動(dòng)排序和繪制的能力。LayerManager存儲(chǔ)了一個(gè)層的列表,新的層可以用函數(shù)附加、刪除和插入。層的序號(hào)相當(dāng)于坐標(biāo)的Z軸,0層表示最接近用戶(hù)視覺(jué),層數(shù)越高,離用戶(hù)越遠(yuǎn)。層號(hào)總是連續(xù)的,即使有中間的層被移除,其他層的序號(hào)會(huì)作相應(yīng)的調(diào)整以保持整體的完整性。LM中的View Window控制著與LM相對(duì)坐標(biāo)的可視區(qū)域。改變View Window的位置可以制造出滾動(dòng)屏幕的效果。TiledLayer是有一組圖象格元素組成的整塊虛擬圖象。該類(lèi)使不需要高分辨率的圖象就能創(chuàng)建大幅圖面成為可能。這項(xiàng)技術(shù)通常應(yīng)用在2D游戲平臺(tái)的滾動(dòng)背景的繪圖。一塊整圖可被分割成等大小的圖象格,每塊格有其對(duì)應(yīng)的序號(hào),按照行列遞增。多塊小格可由大塊同時(shí)替換組合而模擬動(dòng)態(tài)的背景,這不需要逐塊替換所有的靜態(tài)圖象格而顯得非常方便。 PNG圖片格式PNG(Portable Network Graphics)格式是MIDlet唯一支持的圖象格式,PNG具體格式由PNG Specification,Version 。PNG格式提供透明背景的圖象,這對(duì)繪制游戲畫(huà)面和閱讀效果極有幫助。PNG格式圖片中包含許多定義其圖片特性的冗余部分(Chunks)。這些代碼包含在每一個(gè)單獨(dú)的png格式圖象中,然而如果將多個(gè)png圖象合并在一張幅面稍大一些的整圖中,多個(gè)chunks就可以得到精簡(jiǎn),圖片的大小可以得到控制。使用Image類(lèi)中的createImage函數(shù)可從整圖中分割出所需要的元素。在Game包中的TiledLayer和Sprite類(lèi)都整合了這樣的功能。,實(shí)現(xiàn)了方便的管理和程序體積的精簡(jiǎn)。手機(jī)內(nèi)存空間小,所以在程序設(shè)計(jì)時(shí)應(yīng)該注意以下幾點(diǎn),以盡量減少內(nèi)存的使用: (1)盡量縮短命名的長(zhǎng)度。在應(yīng)用程序內(nèi),對(duì)于所建立的類(lèi)、接口、方法及變量名而言,都需要賦予一個(gè)識(shí)別的名稱(chēng),所命名的名稱(chēng)每多一個(gè)字符就會(huì)在類(lèi)文件內(nèi)多產(chǎn)生一個(gè)字節(jié),對(duì)于一個(gè)較復(fù)雜的應(yīng)用程序而言就會(huì)增加為數(shù)不小的數(shù)據(jù)量。所有這些可以借助混淆器來(lái)幫助實(shí)現(xiàn) (2)所有代碼寫(xiě)為一個(gè)類(lèi)。 (3)只使用一個(gè)線(xiàn)程。 (4)盡量不使用靜態(tài)變量。 (5)將PNG圖片合并成一張,減少圖形數(shù)據(jù)的大小。將PNG格式的小分辨率圖象合并在一張大的高分辨率圖象中,由于減少了頭文件的大小,將比合并前的總大小減少許多。 內(nèi)存檢測(cè)器Wireless Tool Kit提供了許多在運(yùn)行時(shí)監(jiān)視運(yùn)行狀態(tài)的工具。 包括內(nèi)存狀況的檢測(cè)(手機(jī)上的內(nèi)存空間十分有限,必須時(shí)刻關(guān)注機(jī)載內(nèi)存是否大于程序所能使用到的最大可能的內(nèi)存空間),網(wǎng)絡(luò)狀況的檢測(cè),運(yùn)行函數(shù)的跟蹤等。 內(nèi)存檢測(cè)器是內(nèi)存跟蹤測(cè)試隨時(shí)間變化的調(diào)試器。其中,允許強(qiáng)制垃圾回收(Garbage Collection)。由于Java語(yǔ)言中,不像許多其他的如C++語(yǔ)言,不需要指定回收函數(shù)中特定不使用的資源,資源回收機(jī)制將自動(dòng)清空無(wú)效變量占用的空間。在程序運(yùn)行中也可以調(diào)用System類(lèi)的gc()函數(shù)手動(dòng)收回廢棄的內(nèi)存。 關(guān)于混淆器Java 語(yǔ)言并沒(méi)有完全編譯成二進(jìn)制可執(zhí)行文件,需要虛擬機(jī)來(lái)執(zhí)行。它包括了所有的信息。,從而不能保護(hù)作者的知識(shí)成果。目前流行的如decode,JAD等反編譯工具可以以很快的速度生成源文件。如果不加以施行有效的措施,將造成嚴(yán)重的后果。由此引入混淆器的概念?;煜鲗⒋a中的所有變量、函數(shù)、類(lèi)的名稱(chēng)變?yōu)楹?jiǎn)短的英文字母代號(hào),如果缺乏相應(yīng)的函數(shù)名指示和程序注釋?zhuān)词贡环淳幾g,也將難以閱讀。混淆器的作用不僅僅是保護(hù)代碼,它也有精簡(jiǎn)編譯后程序大小的作用。由于以上介紹的減少變量、函數(shù)的命名長(zhǎng)度的關(guān)系?;煜螅w積大約能減少25%,這對(duì)當(dāng)前費(fèi)用較貴的無(wú)線(xiàn)網(wǎng)絡(luò)傳輸是有一定意義的。4 程序分析和具體實(shí)現(xiàn) 手機(jī)閱讀器讀取文本由于J2ME不可以對(duì)手機(jī)中的文件進(jìn)行讀寫(xiě),所以在開(kāi)發(fā)本程序時(shí),只能在程序打包時(shí)把文本文件作為資源文件加入到J2ME發(fā)布程序中。如果想讀寫(xiě)手機(jī)上的文件,則要使用各手機(jī)商家提供的特定開(kāi)發(fā)平臺(tái)和專(zhuān)用的類(lèi)來(lái)開(kāi)發(fā),下面就文本閱讀器的關(guān)鍵技術(shù)進(jìn)行說(shuō)明。在J2ME中如何讀取文本文件的內(nèi)容,在本系統(tǒng)中寫(xiě)了一個(gè)函數(shù)用來(lái)讀取指定的文本文件,文本文件做為參數(shù)傳給該函數(shù),該函數(shù)的返回值為字符串類(lèi)型,將文件的內(nèi)容做為一個(gè)完整的字符串返回。在讀取文件內(nèi)容時(shí)用到的主要技術(shù),使用InputStream類(lèi)定義一個(gè)輸入字節(jié)流對(duì)象in,使用ByteArrayOutputStream類(lèi)定義一個(gè)內(nèi)存數(shù)組輸出字節(jié)流對(duì)象s,()方法來(lái)讀取一個(gè)字節(jié),( )方法加入到s中,()方法將內(nèi)存轉(zhuǎn)為字符串返回。讀取文本文件的函數(shù)定義如下: private String myReadLine (String testFileName) { //函數(shù)頭定義了函數(shù)的參數(shù)為文件名組成的字符串,返回值為一個(gè)字符串。 InputStream in = ().getResourceAsStream(testFileName)。 //由文件名參數(shù)來(lái)定義一個(gè)輸入流對(duì)象變量in ByteArrayOutputStream s。 s = new ByteArrayOutputStream()。 //產(chǎn)生內(nèi)存數(shù)組輸出字節(jié)流對(duì)象變量S try{ int ch=0。 ch=()。 //由輸入流對(duì)象變量in的read方法以字節(jié)為單位來(lái)讀取文件的內(nèi)容,讀取到文件尾時(shí)的值為1。 while ( ch!= 1 ) { //如果未讀到文件尾把讀取的內(nèi)容寫(xiě)入S變量中,并讀取下一字節(jié)內(nèi)容 ( ch )。 ch=()。 } ()。 //關(guān)閉輸入流對(duì)象。 } catch (IOException ioe){ (())。 } String str = ()。 //將S變量轉(zhuǎn)為字符串 try{ ()。 //關(guān)閉輸出流對(duì)象 } catch (IOException ioe){ (())。 } return ()。 //返回文件中的內(nèi)容字符串 } 系統(tǒng)設(shè)計(jì) 基本概念本文利用J2ME技術(shù)開(kāi)發(fā)了一個(gè)文本閱讀器,實(shí)現(xiàn)了手機(jī)對(duì)文本文件的顯示,給出了該程序的實(shí)現(xiàn)代碼,并對(duì)其關(guān)鍵技術(shù)進(jìn)行了詳細(xì)闡述。 軟件設(shè)計(jì)任務(wù)①J2ME文本閱讀器中的文本格式。②讀取文本文件的主要技術(shù)實(shí)現(xiàn)。③將文本文件內(nèi)容顯示出來(lái)的技術(shù)實(shí)現(xiàn)。④閱讀器中的菜單設(shè)計(jì)技術(shù)實(shí)現(xiàn)。 總體設(shè)計(jì)J2ME文本閱讀器中的文本格式J2ME中文本文件的格式,為了便于程序的開(kāi)發(fā)和在運(yùn)行中的讀寫(xiě)處理,對(duì)要處理的文本文件要進(jìn)行一定格式的整理。本程序中的文本要求用純文本即可,每章為一個(gè)獨(dú)立的文件,每一章中均可為多段,在文本中加入的空格和各種符號(hào)都可在閱讀時(shí)如實(shí)的顯示出來(lái)。文件寫(xiě)好后將其存入相應(yīng)項(xiàng)目文件夾下的res文件夾中,如本文中的閱讀器的項(xiàng)目名為test,則可將文本文件存入test\res文件夾下。本系統(tǒng)要閱讀三章內(nèi)容,所以制作了三個(gè)文本文件,、將三個(gè)文件存入test\res文件夾中,到此文本內(nèi)容準(zhǔn)備完成。文本讀取文件的主要技術(shù)在J2ME中如何讀取文本文件的內(nèi)容,在本系統(tǒng)中寫(xiě)了一個(gè)函數(shù)用來(lái)讀取指定的文本文件,文本文件做為參數(shù)傳給該函數(shù),該函數(shù)的返回值為字符串類(lèi)型,將文件的內(nèi)容做為一個(gè)完整的字符串返回。在讀取文件內(nèi)容時(shí)用到的主要技術(shù),使用InputStream類(lèi)定義一個(gè)輸入字節(jié)流對(duì)象in,使用ByteArrayOutputStream類(lèi)定義一個(gè)內(nèi)存數(shù)組輸出字節(jié)流對(duì)象s,()方法來(lái)讀取一個(gè)字節(jié),( )方法加入到s中,()方法將內(nèi)存轉(zhuǎn)為字符串返回。讀取文本文件的函數(shù)定義如下: private String myReadLine (String testFileName) { //函數(shù)頭定義了函數(shù)的參數(shù)為文件名組成的字符串,返回值為一個(gè)字符串。 InputStream in = ().getResourceAsStream(testFileName)。 //由文件名參數(shù)來(lái)定義一個(gè)輸入流對(duì)象變量in ByteArrayOutputStream s。 s = new ByteArrayOutputStream()。 //產(chǎn)生內(nèi)存數(shù)組輸出字節(jié)流對(duì)象變量S try{ int ch=0。16
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1