版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、創(chuàng)建使用觸摸屏的創(chuàng)建使用觸摸屏的JavaME程序程序楊建強(qiáng)摘要:介紹了Canvas類中可用于捕獲觸摸屏事件的方法,創(chuàng)建了一個類似于iPhone手機(jī)上的圖片瀏覽程序。關(guān)鍵詞:JavaME;Canvas1Canvas類Canvas類位于javax.microedition.lcdui包中,它提供了低級屏幕和圖像操作方法。該類自身是抽象類,使用的時候需要給出具體的實(shí)現(xiàn)。Canvas中最重要的方法是paint(Graphicsg),它完成圖像的
2、實(shí)際繪制。當(dāng)然,在這里paint()方法并不是重點(diǎn),感興趣的是其他5個方法,它們可用于創(chuàng)建使用觸摸屏的JavaME程序。這些方法包括hasPointerEvents()、hasPointerMotionEvents()、pointerDragged(intxinty)、pointerPressed(intxinty),以及pointerReleased(intxinty)。這5個方法最初被用于處理具有指點(diǎn)能力的界面———也即用戶能夠使用
3、指點(diǎn)設(shè)備與這樣的界面交互。不過,在具有觸摸功能的非指點(diǎn)設(shè)備上,這些方法工作得一樣好。當(dāng)發(fā)生指點(diǎn)事件時,也即按下、釋放和拖動指點(diǎn)設(shè)備時,系統(tǒng)會分別調(diào)用pointerPressed(intxinty)、pointerReleased(intxinty)和pointerDragged(intxinty)方法,此時,參數(shù)x、y中存有指點(diǎn)事件發(fā)生時指點(diǎn)所在的坐標(biāo)。因此,可以利用這些方法獲得指點(diǎn)所在的位置,并根據(jù)需要完成相應(yīng)的操作。注意,系統(tǒng)對這些
4、方法的調(diào)用是串行的,也即系統(tǒng)從不在前一個調(diào)用方法返回之前調(diào)用另一個方法。方法hasPointerEvents()檢查設(shè)備是否支持指點(diǎn)按下和釋放事件。當(dāng)hasPointerEvents()返回true時,意味著設(shè)備支持pointerPressed(intxinty)和pointerReleased(intxinty)方法。方法hasPointerMotionEvents()檢查設(shè)備是否支持指點(diǎn)移動事件。當(dāng)hasPointerMotionE
5、vents()返回true時,意味著設(shè)備支持pointerDragged(intxinty)方法。2利用利用Canvas創(chuàng)建觸摸屏圖片瀏覽器創(chuàng)建觸摸屏圖片瀏覽器有了前面的基礎(chǔ),現(xiàn)在來創(chuàng)建一個類似于iPhone手機(jī)上的觸摸屏圖片瀏覽器。首先,讓先看一下程序運(yùn)行時的屏幕截圖,從而搞清楚要實(shí)現(xiàn)的效果是什么。如圖1顯示JavaME程序啟動后加載的圖片,以及稍微向左拖動或滑動該圖片后的效果。publicclassBrowseImageCanvas
6、extendsCanvasprivatebooleanscroll=falseprivateintcurrentImage=0privateImage[]images存放多個圖片,相當(dāng)于圖片庫privateintpressXreleaseXdragX=0publicBrowseImageCanvas()啟動時加載圖片,這里加載3個圖片images=newImage[3]images[0]=Image.createImage(“flowe
7、r0.jpg“)images[1]=Image.createImage(“flower1.jpg“)images[2]=Image.createImage(“flower2.jpg“)protectedvoidpaint(Graphicsg)g.setGrayScale(255)g.fillRect(00getWidth()getHeight())清屏if(scroll)滾動當(dāng)前圖片g.drawImage(images[currentI
8、mage]dragX0Graphics.LEFT|Graphics.TOP)scroll=falsereturnif(pressXreleaseX)向左滑動,顯示前一幅圖片currentImageif(currentImage0)currentImage=(images.length1)繪制新的圖片g.drawImage(images[currentImage]00Graphics.LEFT|Graphics.TOP)protected
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論