亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種移動設(shè)備接收觸控方法及設(shè)備的制作方法

文檔序號:6512120閱讀:298來源:國知局
一種移動設(shè)備接收觸控方法及設(shè)備的制作方法
【專利摘要】本發(fā)明公開了移動設(shè)備接收觸控方法及裝置,包括如下步驟:判斷步驟,判斷用戶是否對觸控界面的特定位置進(jìn)行了觸控操作,若是則執(zhí)行截屏步驟;截屏步驟:對移動設(shè)備的顯示屏幕界面進(jìn)行截屏得到截屏圖片,并對所述截屏圖片進(jìn)行顯示;并執(zhí)行接收觸控步驟;接收觸控步驟:接收用戶對所述截屏圖片的觸控操作,將所述截屏圖片被觸控點對應(yīng)的坐標(biāo)映射為所述被觸控點在所述顯示屏幕界面所處的實際坐標(biāo);并執(zhí)行生成觸控步驟;生成觸控步驟:生成所述實際坐標(biāo)處的觸控界面被觸控的觸控消息。本方法解決了單手操縱大屏幕移動設(shè)備時,手指難以觸及整個屏幕的問題。
【專利說明】一種移動設(shè)備接收觸控方法及設(shè)備
【【技術(shù)領(lǐng)域】】
[0001]本發(fā)明涉及移動設(shè)備領(lǐng)域,具體涉及一種移動設(shè)備接收觸控方法及裝置。
【【背景技術(shù)】】
[0002]在Android系統(tǒng)設(shè)備中,大屏幕手持設(shè)備大量涌現(xiàn),如大屏手機(jī)、平板電腦等。大屏幕手持設(shè)備的出現(xiàn),一方面為用戶帶來了更好的用戶體驗,另一方面也實現(xiàn)了更好的雙手操作效果。但是在使用大屏幕手持設(shè)備單手操作時,手指難以觸及整個屏幕,不方便點擊邊緣按鈕;同時隨著系統(tǒng)程序畫面的增大,畫面布局也越來越復(fù)雜精致,對邊緣按鈕的點擊也會出現(xiàn)錯位等問題,為單手使用Android設(shè)備造成很多不便。

【發(fā)明內(nèi)容】

[0003]為了克服現(xiàn)有技術(shù)的不足,本發(fā)明提供了一種種移動設(shè)備接收觸控方法及裝置,使得用戶在單手操作移動設(shè)備的情況下,仍然可以較方便點擊移動設(shè)備觸控屏的任意位置。
[0004]一種移動設(shè)備接收觸控方法,包括如下步驟:
[0005]判斷步驟,判斷用戶是否對觸控界面的特定位置進(jìn)行了觸控操作,若是則執(zhí)行截屏步驟;
[0006]截屏步驟:對移動設(shè)備的顯示屏幕界面進(jìn)行截屏得到截屏圖片,并對所述截屏圖片進(jìn)行顯示;并執(zhí)行接收觸控步驟;
[0007]接收觸控步驟:接收用戶對所述截屏圖片的觸控操作,將所述截屏圖片被觸控點對應(yīng)的坐標(biāo)映射為所述被觸控點在所述顯示屏幕界面所處的實際坐標(biāo);并執(zhí)行生成觸控步驟;
[0008]生成觸控步驟:生成所述實際坐標(biāo)處的觸控界面被觸控的觸控消息。
[0009]優(yōu)選地,
[0010] 當(dāng)所述截屏圖片被用戶觸控移動時,所述接收觸控步驟還包括如下步驟:
[0011 ] 記錄對所述截屏圖片的移動操作起點的起點橫坐標(biāo)和起點縱坐標(biāo);
[0012]記錄對所述截屏圖片的移動操作終點的終點橫坐標(biāo)和終點縱坐標(biāo);
[0013]根據(jù)所述起點橫坐標(biāo)、起點縱坐標(biāo)、終點橫坐標(biāo)、終點縱坐標(biāo)和所述截屏圖片被觸控點的坐標(biāo)得到所述實際坐標(biāo)。
[0014]優(yōu)選地,
[0015]所述特定位置是懸浮在顯示屏幕界面上的懸浮窗口所在的位置。
[0016]優(yōu)選地,
[0017]所述接收觸控步驟中,所述觸控操作是移動和/或點擊操作。
[0018]優(yōu)選地,還包括接收用戶對所述截屏圖片進(jìn)行放大的觸控操作。
[0019]本發(fā)明還提供了一種安卓系統(tǒng)移動設(shè)備接收觸控方法,包括如下步驟:
[0020]I)在顯示屏幕界面生成懸浮窗口 ;并執(zhí)行步驟2);[0021]2)判斷用戶是否對所述懸浮窗口進(jìn)行了點擊操作,若是則執(zhí)行步驟3);
[0022]3)讀取幀緩沖器內(nèi)的顯示屏幕界面的圖像數(shù)據(jù),將所述圖像數(shù)據(jù)轉(zhuǎn)換成PNG文件,并將所述PNG文件保存在設(shè)定路徑下;并執(zhí)行步驟4);
[0023]4)將所述PNG文件轉(zhuǎn)換為位圖格式的截屏圖片,讀取顯示所述截屏圖片;并執(zhí)行步驟5);
[0024]5)接收用戶對所述截屏圖片的移動操作,記錄對所述截屏圖片的移動操作起點的起點橫坐標(biāo)和起點縱坐標(biāo);記錄對所述截屏圖片的移動操作終點的終點橫坐標(biāo)和終點縱坐標(biāo);并執(zhí)行步驟6);
[0025]6)接收用戶對所述截屏圖片的點擊操作;并執(zhí)行步驟7);
[0026]7)根據(jù)所述起點橫坐標(biāo)、起點縱坐標(biāo)、終點橫坐標(biāo)、終點縱坐標(biāo)和所述截屏圖片被點擊點的坐標(biāo)得到所述被點擊點在所述顯示屏幕界面所處的實際坐標(biāo);并執(zhí)行步驟8);
[0027]8)生成所述實際坐標(biāo)處的觸控界面被觸控的觸控消息。
[0028]本發(fā)明還提供了一種移動設(shè)備接收觸控裝置,包括如下單元:
[0029]判斷單元,用于判斷用戶是否對觸控界面的特定位置進(jìn)行了觸控操作,若是則截屏單元工作;
[0030]截屏單元:用于對移動設(shè)備的顯示屏幕界面進(jìn)行截屏得到截屏圖片,并對所述截屏圖片進(jìn)行顯示;且接收觸控單元工作;
[0031]接收觸控單元:用于接收用戶對所述截屏圖片的觸控操作,將所述截屏圖片被觸控點對應(yīng)的坐標(biāo)映射為所述被觸控點在所述顯示屏幕界面所處的實際坐標(biāo);且生成觸控單元工作;
[0032]生成觸控單元:用于生成所述實際坐標(biāo)處的觸控界面被觸控的觸控消息。
[0033]優(yōu)選地,
[0034]所述接收觸控單元還用于:
[0035]記錄對所述截屏圖片的移動操作起點的起點橫坐標(biāo)和起點縱坐標(biāo);
[0036]記錄對所述截屏圖片的移動操作終點的終點橫坐標(biāo)和終點縱坐標(biāo);
[0037]根據(jù)所述起點橫坐標(biāo)、起點縱坐標(biāo)、終點橫坐標(biāo)、終點縱坐標(biāo)和所述截屏圖片被觸控點的坐標(biāo)得到所述實際坐標(biāo)。
[0038]優(yōu)選地,所述特定位置是懸浮在顯示屏幕界面上的懸浮窗口所在的位置。
[0039]本發(fā)明還提供了一種安卓系統(tǒng)移動設(shè)備接收觸控裝置,包括如下單元:
[0040]第一單元,用于在顯示屏幕界面生成懸浮窗口 ;且第二單元工作;
[0041]第二單元,用于判斷用戶是否對所述懸浮窗口進(jìn)行了點擊操作,若是則第三單元工作;
[0042]第三單元,用于讀取幀緩沖器內(nèi)的顯示屏幕界面的圖像數(shù)據(jù),將所述圖像數(shù)據(jù)轉(zhuǎn)換成PNG文件,并將所述PNG文件保存在設(shè)定路徑下;且第四單元工作;
[0043]第四單元,用于將所述PNG文件轉(zhuǎn)換為位圖格式的截屏圖片,讀取顯示所述截屏圖片;且第五單元工作;
[0044]第五單元,用于接收用戶對所述截屏圖片的移動操作,記錄對所述截屏圖片的移動操作起點的起點橫坐標(biāo)和起點縱坐標(biāo);記錄對所述截屏圖片的移動操作終點的終點橫坐標(biāo)和終點縱坐標(biāo);且第六單元工作;[0045]第六單元,用于接收用戶對所述截屏圖片的點擊操作;且第七單元工作;
[0046]第七單元,用于根據(jù)所述起點橫坐標(biāo)、起點縱坐標(biāo)、終點橫坐標(biāo)、終點縱坐標(biāo)和所述截屏圖片被點擊點的坐標(biāo)得到所述被點擊點在所述顯示屏幕界面所處的實際坐標(biāo);且第八單元工作;
[0047]第八單元,用于生成所述實際坐標(biāo)處的觸控界面被觸控的觸控消息。
[0048]本發(fā)明的有益效果是:本方法利用截屏機(jī)制實現(xiàn)安卓系統(tǒng)屏幕移動點擊,可將在屏幕邊緣不易點擊的圖標(biāo)移動進(jìn)行點擊操作,操作方便、快捷、準(zhǔn)確;本方法利用截屏機(jī)制,可實時進(jìn)行屏幕截屏,正常實現(xiàn)屏幕移動點擊;本方法實現(xiàn)的應(yīng)用程序以懸浮窗形式呈現(xiàn),可對Android系統(tǒng)設(shè)備的任意界面便捷的實現(xiàn)截圖;本方法將點擊位置相對于圖片的坐標(biāo)映射為屏幕的坐標(biāo),無需進(jìn)行復(fù)雜的坐標(biāo)映射運(yùn)算;本方法無需獲得輸入設(shè)備的相關(guān)事件,直接利用Android SDK中的API模擬屏幕點擊信號;本方法無需修改Android源碼,實現(xiàn)簡單且不會對其他功能模塊造成影響,對Android系統(tǒng)后續(xù)版本具有一定的適應(yīng)性;本方法解決了單手操縱大屏幕Android設(shè)備時,手指難以觸及整個屏幕的問題。
【【專利附圖】

【附圖說明】】
[0049]圖1是本發(fā)明一種實施例的移動設(shè)備接收觸控方法的流程示意圖;
[0050]圖2是本發(fā)明一種實施例的移動設(shè)備接收觸控裝置的示意框圖;
[0051]圖3是本發(fā)明一種實施例的移動設(shè)備接收觸控方法的操作示意圖。
【【具體實施方式】】
[0052]以下將結(jié)合附圖,對本發(fā)明的具體實施例作進(jìn)一步詳細(xì)說明。
[0053]如圖1所示,一種實施 例的移動設(shè)備接收觸控方法,包括如下步驟:
[0054]SI判斷步驟,判斷用戶是否對觸控界面的特定位置進(jìn)行了觸控操作,若是則執(zhí)行截屏步驟;
[0055]S2截屏步驟:對移動設(shè)備的顯示屏幕界面進(jìn)行截屏得到截屏圖片,并對所述截屏圖片進(jìn)行顯示;并執(zhí)行接收觸控步驟;
[0056]S3接收觸控步驟:接收用戶對所述截屏圖片的觸控操作,將所述截屏圖片被觸控點對應(yīng)的坐標(biāo)映射為所述被觸控點在所述顯示屏幕界面所處的實際坐標(biāo);并執(zhí)行生成觸控步驟;
[0057]S4生成觸控步驟:生成所述實際坐標(biāo)處的觸控界面被觸控的觸控消息。
[0058]在一種更為具體的實施例的安卓系統(tǒng)移動設(shè)備接收觸控方法,包括如下步驟:
[0059]I)在移動設(shè)備的觸控顯示屏幕界面生成懸浮窗口,該懸浮窗口位于其他應(yīng)用程序之上;并執(zhí)行步驟2)。
[0060]在Android應(yīng)用程序中,Activity (活動)是最基本的模塊,監(jiān)聽系統(tǒng)事件(按鍵事件、觸摸屏事件等),為用戶顯示指定的View (視圖),切換Activity時,新的View就會打開。
[0061]由于需要對Android設(shè)備的任意界面進(jìn)行截屏,因此所開發(fā)的應(yīng)用程序的視圖需始終在Android設(shè)備界面的頂層。若該應(yīng)用程序為普通的視圖形式,任意新的應(yīng)用程序開啟則會用新屏幕取代,無法實現(xiàn)任意界面的截屏。因此需要設(shè)置應(yīng)用程序?qū)崿F(xiàn)懸浮窗效果,使其始終懸浮在Android設(shè)備的界面頂層。
[0062]Android的窗口機(jī)制是基于WindowManager,主要用來管理窗口的一些狀態(tài)、屬性等。在WindowManager中有一個重要的靜態(tài)類LayoutParams,通過它可以設(shè)置和獲得當(dāng)前窗口的屬性,創(chuàng)建系統(tǒng)頂級窗口,實現(xiàn)懸浮窗效果。
[0063]創(chuàng)建Android懸浮窗應(yīng)用程序,首先,需要得到WindowManager對象,示例代碼如下:
[0064]WindowManager wManager = getAppl icationContext ().getSystemService(Context.WIND0ff_SERVICE);
[0065]其次,得到WindowManager的LayoutParams對象,以便對窗口參數(shù)進(jìn)行設(shè)置,示例代碼如下:
[0066]Private WindowManager.LayoutParams wmParams=new WindowManager.LayoutParams O ;
[0067]再次,設(shè)置窗口參數(shù),實現(xiàn)懸浮窗口效果。
[0068]此處要實現(xiàn)懸浮窗口效果,將該應(yīng)用程序置于其他應(yīng)用程序之上,狀態(tài)欄之下,故設(shè)置LayoutParams的type屬性為TYPE_PHONE。需要設(shè)置的參數(shù)如下代碼所示:
[0069]wmParams.type=LayoutParams.TYPE_PHONE ;
[0070]實現(xiàn)的懸浮窗可以進(jìn)行點擊以完成截屏,所以需將懸浮窗口范圍之外的點設(shè)備事件(鼠標(biāo)、觸摸屏)發(fā)送給后面的窗口處理。懸浮窗無需獲得焦點,同時不影響后面的事件響應(yīng),設(shè)置 LayoutParams 的 flags 屬性分別為 FLAG_NOT_FOCUSABLE、FLAG_NOT_TOUCH_MODAL。
[0071]wmParams.fIags=LayoutParams.FLAG_NOT_FOCUSABLE
[0072]LayoutParams.FLAG_N0T_T0UCH_M0DAL ;
[0073]最后,將需要加到懸浮窗口中的View加入到窗口中:
[0074]wManager.addView(view, wmParams);
[0075]如果要將其從WindowManager中移除,則可以執(zhí)行以下語句:
[0076]wManager.removeView (view);
[0077]完成應(yīng)用程序的代碼編寫后,還需要為該應(yīng)用程序添加權(quán)限,允許其為懸浮窗形式。在 AndroidManifest.xml 文件中,為〈mainfest〉兀素添加代碼:“〈uses_permissionandroid:name=〃android, permission.SYSTEM_ALERT_WIND0W〃/>”,即可為該應(yīng)用程序添加允許其為懸浮窗的權(quán)限。
[0078]至此,即可創(chuàng)建一個主屏為懸浮窗的應(yīng)用程序,始終浮在所用應(yīng)用程序的頂端。點擊該懸浮窗后即可以對當(dāng)前懸浮窗口所在的顯示界面進(jìn)行截屏,得到截屏圖片。
[0079]2)判斷用戶是否對所述懸浮窗口進(jìn)行了點擊操作,若是則執(zhí)行步驟3)。
[0080]3)讀取幀緩沖器內(nèi)的顯示屏幕界面的圖像數(shù)據(jù),將所述圖像數(shù)據(jù)轉(zhuǎn)換成PNG文件,并將所述PNG文件保存在設(shè)定路徑下;并執(zhí)行步驟4)。
[0081 ] FrameBuffer (巾貞緩沖器)是Linux內(nèi)核對顯示的最底層驅(qū)動。用戶可以把FrameBuffer看成一塊內(nèi)存,既可以向這塊內(nèi)存中寫入數(shù)據(jù),也可以從這塊內(nèi)存中讀取數(shù)據(jù),寫入的數(shù)據(jù)會顯示在屏幕上,讀取操作則可獲得當(dāng)前屏幕上的圖像。
[0082]Android設(shè)備上的圖像信息都是通過FrameBuffer寫到屏幕上去的。因此可以通過讀取FrameBuffer中的數(shù)據(jù)來獲取當(dāng)前正在顯示的圖像。FrameBuffer在Android中對應(yīng)的設(shè)備文件是/dev/graphics/fbO。因為應(yīng)用程序無法直接操作設(shè)備文件,因此本方法中,操作設(shè)備文件讀取FrameBuffer對當(dāng)前屏幕進(jìn)行截屏在底層完成,并將其編譯JNI庫,通過JNI的通信方式,完成截屏功能。
[0083]本方法中在Android系統(tǒng)底層讀取FrameBuffer實現(xiàn)截屏,Android應(yīng)用程序通過JNI對底層調(diào)用。
[0084]3.1)讀取FrameBuffer內(nèi)的顯示屏幕界面的圖像數(shù)據(jù)
[0085]在Android系統(tǒng)中通過/dev/graphics/fbO設(shè)備文件直接讀取FrameBuffer。
[0086]讀取FrameBuffer時調(diào)用fopen函數(shù),打開FrameBuffer設(shè)備文件,通過調(diào)用fileno函數(shù)打開一個指向FrameBuffer的輸入流,調(diào)用fdopen函數(shù)使一個標(biāo)準(zhǔn)1/0流與該描述符相結(jié)合,就可以對FrameBuffer進(jìn)行讀取了。讀取時調(diào)用ioctl,讀取與FrameBuffer有關(guān)的可變信息,即FrameBuffer的長度、寬度以及顏色深度等信息。在調(diào)用ioctl的時候,要用到struct fb_var_screeninfo結(jié)構(gòu)體,用于保存FrameBuffer設(shè)備的可變信息。特別的,之后需要用到struct fb_var_screeninfo的下面這幾個字段:xres、yres、bits_per_pixel,分別表示x軸的分辨率、y軸的分辨率以及每像素的顏色深度(顏色深度的單位為 bit/pixel)。
[0087]3.2)將圖像數(shù)據(jù)轉(zhuǎn)換成PNG文件,并將所述PNG文件保存在設(shè)定路徑下。
[0088]FrameBuffer的數(shù)據(jù)是直接送入顯示設(shè)備的,此處我們需要將從FrameBuffer讀到的屏幕圖像信息保存起來,以便后續(xù)調(diào)用。因此,這里將FrameBuffer的圖像數(shù)據(jù)寫入至PNG文件。
[0089]PNG流式網(wǎng)絡(luò)圖形格式是一種位圖文件存儲格式。由于FrameBuffer讀到數(shù)據(jù)跟顯示方式關(guān)系很大,在不同設(shè)備上FrameBuffer的大小和數(shù)據(jù)格式不一樣,讀取前通過fopen函數(shù)打開FrameBuffer設(shè)備,確定FrameBuffer的數(shù)據(jù)格式,并按照從FrameBuffer讀取到的圖像數(shù)據(jù)設(shè)置PNG圖像的參數(shù),如圖像高、寬、深度、圖像類型、交錯類型等。將FrameBuffer圖像數(shù)據(jù)轉(zhuǎn)換為PNG文件時,首先調(diào)用fopen函數(shù)在SD卡指定路徑<screenpic-path> 下倉ll建 png 文件并打開;再*1周用 png_create_write_struct 函數(shù)、png—create_info_struct函數(shù)、png_init_io函數(shù)對圖像文件進(jìn)行初始化,通過png_set_IHDR函數(shù)對圖像的高、寬、深度、圖像類型、交錯類型等參數(shù)進(jìn)行設(shè)置;初始化和參數(shù)設(shè)置等工作完成之后,就開始繪制圖片內(nèi)容,準(zhǔn)備足夠大的一塊內(nèi)存imgbuf來表示整幅圖像中的所有點,因為PNG文件是行優(yōu)先,因此調(diào)用png_Write_r0W函數(shù)依次繪制各水平直線。至此,即可繪制PNG圖像,保存到Android系統(tǒng)設(shè)備SD卡的指定路徑<screenpic_path>中。
[0090]4)將所述PNG文件轉(zhuǎn)換為位圖格式的截屏圖片,讀取顯示所述截屏圖片;并執(zhí)行步驟5)。
[0091]實現(xiàn)截屏后將截屏圖片(PNG格式的文件)保存到了 SD卡的指定路徑<screenpic-path>中,對截屏圖片進(jìn)行移動時首先讀取該圖片并進(jìn)行顯示,以供使用者對該屏幕圖片進(jìn)行縮放移動。讀取圖片時,可直接讀取路徑<screenpic-path>中的文件,并調(diào)用AndroidSDK中的BitmapFactory.decodeFile將其轉(zhuǎn)換為位圖,以供圖像視圖1mageView之后調(diào)用setlmageBitmap將該圖片在imageview中顯不。
[0092]應(yīng)用程序讀取SD卡需為其添加權(quán)限,允許其訪問SD卡。添加權(quán)限在AndroidManifest.xml 文件中,為〈mainfest〉兀素添加代碼:“〈uses_permissionandroid:name=〃android, permission.WRITE_EXTERNAL_STORAGE〃/>”,即可為該應(yīng)用程序添加訪問SD卡的權(quán)限。
[0093]5)接收用戶對所述截屏圖片的移動操作,記錄對所述截屏圖片的移動操作起點的起點橫坐標(biāo)和起點縱坐標(biāo);記錄對所述截屏圖片的移動操作終點的終點橫坐標(biāo)和終點縱坐標(biāo);并執(zhí)行步驟6)。
[0094]6)接收用戶對所述截屏圖片的點擊操作;并執(zhí)行步驟7);
[0095]7)根據(jù)所述起點橫坐標(biāo)、起點縱坐標(biāo)、終點橫坐標(biāo)、終點縱坐標(biāo)和所述截屏圖片被點擊點的坐標(biāo),計算得到所述被點擊點在所述顯示屏幕界面所處的實際坐標(biāo);并執(zhí)行步驟8)。
[0096]用戶需要對從SD卡指定路徑中讀取的截屏圖片進(jìn)行移動。截屏圖片通過ImageView顯示,因此對圖片的移動即通過ImageView對觸摸事件OnTouchListener的監(jiān)聽來實現(xiàn)。
[0097]當(dāng)用戶在屏幕上ImageView的窗口范圍內(nèi)觸摸按下、抬起或滑動的時候都會觸發(fā)OnTouchListener事件,OnTouchListener事件中調(diào)用onTouch函數(shù)實現(xiàn)捕捉判斷觸摸狀態(tài),通過getRawXO、getRawY O函數(shù)實時獲得被觸控點相對于屏幕左上角的X、Y坐標(biāo)值X、y,并通過getActionO獲得觸摸屏幕的按下、抬起和滑動狀態(tài)。
[0098]如圖3所示,用戶對觸控屏幕的當(dāng)前顯示界面S進(jìn)行截屏得到截屏圖片P,用戶對該截屏圖片P進(jìn)行移動后,移動設(shè)備檢測到該截屏圖片在X方向和I方向分別偏離觸控屏幕d2和dl,進(jìn)一步檢測到用戶當(dāng)前點擊的觸控點A2(x2,y2),經(jīng)過換算后即可以得到用戶實際要點擊的與該觸控點A2對應(yīng)的實際坐標(biāo)點Al (xl,yl)。
[0099]當(dāng)截屏圖片上的某個點被按下,其觸摸狀態(tài)為按下ACT10N_D0WN時,保存該起點相對于屏幕左上角的X、Y坐標(biāo)值mStartX、mStartY,與抬起的終點的位置坐標(biāo)對應(yīng)以判斷是點擊事件還是移動事件,并同時存儲在lastX、IastY中,以供移動事件時將其作為移動起始點調(diào)用;根據(jù)該截屏圖片偏離原屏幕顯示界面的距離、mStartX和mStartY計算按下位置相對于截屏圖片ImageView左上角的X、Y坐標(biāo)值mTouchX、mTouchY。
[0100]當(dāng)觸摸狀態(tài)為按下ACT10N_M0VE時,通過視圖類的函數(shù)layout (left, top, right, bottom)實現(xiàn)圖片移動,其中各參數(shù)分別表示截屏圖片左側(cè)至屏幕左側(cè)的距離、圖片上側(cè)至屏幕上側(cè)的距離、圖片右側(cè)至屏幕左側(cè)的距離和圖片下側(cè)屏幕上側(cè)的距離。調(diào)用函數(shù)getRawXO、getRawYO獲得此時按下位置相對于屏幕左上角的X、Y坐標(biāo)值,與上一次保存的坐標(biāo)值lastX、IastY分別相減即為圖片距離屏幕邊緣距離發(fā)生的改變,將其對應(yīng)付給layout函數(shù)中各參數(shù)即可;最后將此時的坐標(biāo)X、Y保存至lastX、IastY以供下次ACT10N_M0VE事件時調(diào)用。
[0101]當(dāng)觸摸狀態(tài)為按下ACT10N_UP時,判斷此時按下位置相對于屏幕左上角的X、Y坐標(biāo)值x、y與按下時坐標(biāo)值mStartX、mStartY的坐標(biāo)差,若差值足夠小(小于5像素),則視為不進(jìn)行圖片移動,而是對截屏圖片進(jìn)行點擊。
[0102]8)生成所述實際坐標(biāo)處的觸控界面被觸控的觸控消息。
[0103]上述步驟已經(jīng)獲得映射的用戶真正想要點擊的點Al的真實屏幕的坐標(biāo)(mTouchX, mTouchY),向該坐標(biāo)模擬發(fā)送點擊信息即可完成對屏幕該坐標(biāo)的點擊。
[0104]Android系統(tǒng)提供了一套成熟的測試框架Instrumentation,可以通過它監(jiān)測、實現(xiàn)系統(tǒng)與應(yīng)用程序之間的交互。Instrumentation提供了豐富的以send開頭的函數(shù)接口來實現(xiàn)模擬鍵盤鼠標(biāo),如sendPointerSync (MotionEvent event)即可用于模擬觸摸點擊事件,向屏幕指定坐標(biāo)處發(fā)送按下和抬起信息以模擬一次觸摸。
[0105]用戶還可以對該截屏圖片進(jìn)行放大,再進(jìn)行點擊操作,從而可以更加精確地點擊所需要點擊的目標(biāo)。
【權(quán)利要求】
1.一種移動設(shè)備接收觸控方法,其特征是,包括如下步驟: 判斷步驟,判斷用戶是否對觸控界面的特定位置進(jìn)行了觸控操作,若是則執(zhí)行截屏步驟; 截屏步驟:對移動設(shè)備的顯示屏幕界面進(jìn)行截屏得到截屏圖片,并對所述截屏圖片進(jìn)行顯示;并執(zhí)行接收觸控步驟; 接收觸控步驟:接收用戶對所述截屏圖片的觸控操作,將所述截屏圖片被觸控點對應(yīng)的坐標(biāo)映射為所述被觸控點在所述顯示屏幕界面所處的實際坐標(biāo);并執(zhí)行生成觸控步驟;生成觸控步驟:生成所述實際坐標(biāo)處的觸控界面被觸控的觸控消息。
2.如權(quán)利要求1所述的移動設(shè)備接收觸控方法,其特征是: 當(dāng)所述截屏圖片被用戶觸控移動時,所述接收觸控步驟還包括如下步驟: 記錄對所述截屏圖片的移動操作起點的起點橫坐標(biāo)和起點縱坐標(biāo); 記錄對所述截屏圖片的移動操作終點的終點橫坐標(biāo)和終點縱坐標(biāo); 根據(jù)所述起點橫坐標(biāo)、起點縱坐標(biāo)、終點橫坐標(biāo)、終點縱坐標(biāo)和所述截屏圖片被觸控點的坐標(biāo)得到所述實際坐標(biāo)。
3.如權(quán)利要求1所述的移動設(shè)備接收觸控方法,其特征是: 所述特定位置是懸浮在顯示屏幕界面上的懸浮窗口所在的位置。
4.如權(quán)利要求1所述的移動設(shè)備接收觸控方法,其特征是: 所述接收觸控步驟中,所述觸控操作是移動和/或點擊操作。
5.如權(quán)利要求1所述的移動設(shè)備接收觸控方法,其特征是,還包括接收用戶對所述截屏圖片進(jìn)行放大的觸控操作。
6.一種安卓系統(tǒng)移動設(shè)備接收觸控方法,其特征是,包括如下步驟: 1)在顯示屏幕界面生成懸浮窗口;并執(zhí)行步驟2); 2)判斷用戶是否對所述懸浮窗口進(jìn)行了點擊操作,若是則執(zhí)行步驟3); 3)讀取幀緩沖器內(nèi)的顯示屏幕界面的圖像數(shù)據(jù),將所述圖像數(shù)據(jù)轉(zhuǎn)換成PNG文件,并將所述PNG文件保存在設(shè)定路徑下;并執(zhí)行步驟4); 4)將所述PNG文件轉(zhuǎn)換為位圖格式的截屏圖片,讀取顯示所述截屏圖片;并執(zhí)行步驟5); 5)接收用戶對所述截屏圖片的移動操作,記錄對所述截屏圖片的移動操作起點的起點橫坐標(biāo)和起點縱坐標(biāo);記錄對所述截屏圖片的移動操作終點的終點橫坐標(biāo)和終點縱坐標(biāo);并執(zhí)行步驟6); 6)接收用戶對所述截屏圖片的點擊操作;并執(zhí)行步驟7); 7)根據(jù)所述起點橫坐標(biāo)、起點縱坐標(biāo)、終點橫坐標(biāo)、終點縱坐標(biāo)和所述截屏圖片被點擊點的坐標(biāo)得到所述被點擊點在所述顯示屏幕界面所處的實際坐標(biāo);并執(zhí)行步驟8); 8)生成所述實際坐標(biāo)處的觸控界面被觸控的觸控消息。
7.一種移動設(shè)備接收觸控裝置,其特征是,包括如下單元: 判斷單元,用于判斷用戶是否對觸控界面的特定位置進(jìn)行了觸控操作,若是則截屏單元工作; 截屏單元:用于對移動設(shè)備的顯示屏幕界面進(jìn)行截屏得到截屏圖片,并對所述截屏圖片進(jìn)行顯示;且接收觸控單元工作;接收觸控單元:用于接收用戶對所述截屏圖片的觸控操作,將所述截屏圖片被觸控點對應(yīng)的坐標(biāo)映射為所述被觸控點在所述顯示屏幕界面所處的實際坐標(biāo);且生成觸控單元工作; 生成觸控單元:用于生成所述實際坐標(biāo)處的觸控界面被觸控的觸控消息。
8.如權(quán)利要求7所述的移動設(shè)備接收觸控裝置,其特征是, 所述接收觸控單元還用于: 記錄對所述截屏圖片的移動操作起點的起點橫坐標(biāo)和起點縱坐標(biāo); 記錄對所述截屏圖片的移動操作終點的終點橫坐標(biāo)和終點縱坐標(biāo); 根據(jù)所述起點橫坐標(biāo)、起點縱坐標(biāo)、終點橫坐標(biāo)、終點縱坐標(biāo)和所述截屏圖片被觸控點的坐標(biāo)得到所述實際坐標(biāo)。
9.如權(quán)利要求7所述的移動設(shè)備接收觸控裝置,其特征是,所述特定位置是懸浮在顯示屏幕界面上的懸浮窗口所在的位置。
10.一種安卓系統(tǒng)移動設(shè)備接收觸控裝置,其特征是,包括如下單元: 第一單元,用于在 顯示屏幕界面生成懸浮窗口 ;且第二單元工作; 第二單元,用于判斷用戶是否對所述懸浮窗口進(jìn)行了點擊操作,若是則第三單元工作; 第三單元,用于讀取幀緩沖器內(nèi)的顯示屏幕界面的圖像數(shù)據(jù),將所述圖像數(shù)據(jù)轉(zhuǎn)換成PNG文件,并將所述PNG文件保存在設(shè)定路徑下;且第四單元工作; 第四單元,用于將所述PNG文件轉(zhuǎn)換為位圖格式的截屏圖片,讀取顯示所述截屏圖片;且第五單元工作; 第五單元,用于接收用戶對所述截屏圖片的移動操作,記錄對所述截屏圖片的移動操作起點的起點橫坐標(biāo)和起點縱坐標(biāo);記錄對所述截屏圖片的移動操作終點的終點橫坐標(biāo)和終點縱坐標(biāo);且第六單元工作; 第六單元,用于接收用戶對所述截屏圖片的點擊操作;且第七單元工作; 第七單元,用于根據(jù)所述起點橫坐標(biāo)、起點縱坐標(biāo)、終點橫坐標(biāo)、終點縱坐標(biāo)和所述截屏圖片被點擊點的坐標(biāo)得到所述被點擊點在所述顯示屏幕界面所處的實際坐標(biāo);且第八單元工作; 第八單元,用于生成所述實際坐標(biāo)處的觸控界面被觸控的觸控消息。
【文檔編號】G06F3/0484GK103472996SQ201310426152
【公開日】2013年12月25日 申請日期:2013年9月17日 優(yōu)先權(quán)日:2013年9月17日
【發(fā)明者】涂睿, 高見, 吳煥聲, 竇瑋, 耿金河 申請人:深圳市佳創(chuàng)軟件有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1