多指滑動(dòng)手勢(shì)的識(shí)別方法、裝置及終端設(shè)備的制造方法
【專利摘要】本發(fā)明提供了一種多指滑動(dòng)手勢(shì)的識(shí)別方法、裝置及終端設(shè)備。該方法包括:檢測(cè)用戶在觸摸屏上的多次觸摸事件,并獲取對(duì)應(yīng)的觸摸事件數(shù)據(jù),觸摸事件數(shù)據(jù)包括多個(gè)觸摸點(diǎn)的坐標(biāo)和觸摸事件的時(shí)間;根據(jù)觸摸事件數(shù)據(jù)計(jì)算每個(gè)觸摸點(diǎn)的平均滑動(dòng)速率;若每個(gè)觸摸點(diǎn)的平均滑動(dòng)速率均大于或者等于預(yù)設(shè)滑動(dòng)速率,則確定用戶手勢(shì)為多指滑動(dòng)手勢(shì)。本發(fā)明提供的多指滑動(dòng)手勢(shì)的識(shí)別方法、裝置及終端設(shè)備,通過(guò)檢測(cè)用戶在觸摸屏上的多次觸摸事件,并根據(jù)獲取的觸摸事件數(shù)據(jù)計(jì)算每個(gè)觸摸點(diǎn)的平均滑動(dòng)速率,若每個(gè)觸摸點(diǎn)的平均滑動(dòng)速率均大于或者等于預(yù)設(shè)滑動(dòng)速率,則確定用戶手勢(shì)為多指滑動(dòng)手勢(shì),實(shí)現(xiàn)了對(duì)用戶多指滑動(dòng)手勢(shì)的識(shí)別,滿足了用戶需求。
【專利說(shuō)明】
多指滑動(dòng)手勢(shì)的識(shí)別方法、裝置及終端設(shè)備
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及終端技術(shù)領(lǐng)域,尤其涉及一種多指滑動(dòng)手勢(shì)的識(shí)別方法、裝置及終端 設(shè)備。
【背景技術(shù)】
[0002] 當(dāng)前觸摸屏已廣泛應(yīng)用于各種終端設(shè)備(例如手機(jī)、平板電腦、導(dǎo)航儀等)上,而 應(yīng)用于觸摸屏終端設(shè)備的基本手勢(shì)是實(shí)現(xiàn)人機(jī)交互的主要媒介。例如,單擊手勢(shì)用于打開 或關(guān)閉應(yīng)用程序,長(zhǎng)按手勢(shì)用于拖動(dòng)某個(gè)圖標(biāo),滑動(dòng)手勢(shì)用于解鎖、查找聯(lián)系人等。
[0003] 隨著觸摸屏終端設(shè)備的功能、應(yīng)用環(huán)境的多樣化,現(xiàn)有的基本手勢(shì)已不能滿足用 戶的需求。例如,車機(jī)環(huán)境下,車主在開車過(guò)程中通過(guò)單擊一個(gè)小圖標(biāo)去喚起語(yǔ)音等操作頻 率較高的應(yīng)用,會(huì)比較難操作且不安全,因此可通過(guò)多指滑動(dòng)等手勢(shì)來(lái)喚起應(yīng)用。但目前的 觸摸屏終端設(shè)備雖然支持多點(diǎn)觸控,但并未提供對(duì)于多指滑動(dòng)手勢(shì)的識(shí)別方案。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的實(shí)施例提供一種多指滑動(dòng)手勢(shì)的識(shí)別方法、裝置及終端設(shè)備,以實(shí)現(xiàn)對(duì) 用戶多指滑動(dòng)手勢(shì)的識(shí)別,滿足用戶需求。
[0005] 為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:
[0006] -方面,本發(fā)明的實(shí)施例提供一種多指滑動(dòng)手勢(shì)的識(shí)別方法,包括:檢測(cè)用戶在觸 摸屏上的多次觸摸事件,并獲取與每次觸摸事件對(duì)應(yīng)的觸摸事件數(shù)據(jù),所述觸摸事件數(shù)據(jù) 包括多個(gè)觸摸點(diǎn)的坐標(biāo)和所述觸摸事件的時(shí)間;根據(jù)所述觸摸事件數(shù)據(jù)計(jì)算每個(gè)所述觸 摸點(diǎn)的平均滑動(dòng)速率;若每個(gè)所述觸摸點(diǎn)的所述平均滑動(dòng)速率均大于或者等于預(yù)設(shè)滑動(dòng)速 率,則確定用戶手勢(shì)為多指滑動(dòng)手勢(shì)。
[0007] 另一方面,本發(fā)明的實(shí)施例提供一種多指滑動(dòng)手勢(shì)的識(shí)別裝置,包括:檢測(cè)模塊, 用于檢測(cè)用戶在觸摸屏上的多次觸摸事件,并獲取與每次觸摸事件對(duì)應(yīng)的觸摸事件數(shù)據(jù), 所述觸摸事件數(shù)據(jù)包括多個(gè)觸摸點(diǎn)的坐標(biāo)和所述觸摸事件的時(shí)間;計(jì)算模塊,用于根據(jù)所 述觸摸事件數(shù)據(jù)計(jì)算每個(gè)所述觸摸點(diǎn)的平均滑動(dòng)速率;確定模塊,用于若每個(gè)所述觸摸點(diǎn) 的所述平均滑動(dòng)速率均大于或者等于預(yù)設(shè)滑動(dòng)速率,則確定用戶手勢(shì)為多指滑動(dòng)手勢(shì)。
[0008] 另一方面,本發(fā)明的實(shí)施例提供一種終端設(shè)備,包括如上所述的多指滑動(dòng)手勢(shì)的 識(shí)別裝置。
[0009] 本發(fā)明提供的多指滑動(dòng)手勢(shì)的識(shí)別方法、裝置及終端設(shè)備,通過(guò)檢測(cè)用戶在觸摸 屏上的多次觸摸事件,并根據(jù)獲取的與每次觸摸事件對(duì)應(yīng)的觸摸事件數(shù)據(jù)計(jì)算每個(gè)觸摸點(diǎn) 的平均滑動(dòng)速率,若每個(gè)觸摸點(diǎn)的平均滑動(dòng)速率均大于或者等于預(yù)設(shè)滑動(dòng)速率,則確定用 戶手勢(shì)為多指滑動(dòng)手勢(shì),實(shí)現(xiàn)了對(duì)用戶多指滑動(dòng)手勢(shì)的識(shí)別,滿足了用戶需求。
【附圖說(shuō)明】
[0010] 圖1為本發(fā)明提供的多指滑動(dòng)手勢(shì)的識(shí)別方法一個(gè)實(shí)施例的流程示意圖;
[0011]圖2為本發(fā)明提供的多指滑動(dòng)手勢(shì)的識(shí)別方法又一個(gè)實(shí)施例的流程示意圖; [0012]圖3為第一次觸摸事件發(fā)生時(shí)觸摸事件數(shù)據(jù)的存儲(chǔ)示意圖;
[0013]圖4為第二次觸摸事件發(fā)生時(shí)觸摸事件數(shù)據(jù)的存儲(chǔ)示意圖;
[0014] 圖5為第七次觸摸事件發(fā)生時(shí)觸摸事件數(shù)據(jù)的存儲(chǔ)示意圖;
[0015] 圖6為本發(fā)明提供的多指滑動(dòng)手勢(shì)的識(shí)別裝置一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;
[0016] 圖7為本發(fā)明提供的多指滑動(dòng)手勢(shì)的識(shí)別裝置又一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;
[0017] 圖8為本發(fā)明提供的終端設(shè)備一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0018] 下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例的多指滑動(dòng)手勢(shì)的識(shí)別方法、裝置及終端設(shè)備進(jìn)行 詳細(xì)描述。
[0019] 實(shí)施例一
[0020] 圖1為本發(fā)明提供的多指滑動(dòng)手勢(shì)的識(shí)別方法一個(gè)實(shí)施例的流程示意圖。本發(fā)明 實(shí)施例的多指滑動(dòng)手勢(shì)的識(shí)別方法可應(yīng)用于各種觸摸屏終端設(shè)備(例如手機(jī)、平板電腦、 導(dǎo)航儀等)中。如圖1所示,本發(fā)明實(shí)施例的多指滑動(dòng)手勢(shì)的識(shí)別方法具體可包括:
[0021 ] S101,檢測(cè)用戶在觸摸屏上的多次觸摸事件,并獲取與每次觸摸事件對(duì)應(yīng)的觸摸 事件數(shù)據(jù),觸摸事件數(shù)據(jù)包括多個(gè)觸摸點(diǎn)的坐標(biāo)和觸摸事件的時(shí)間。
[0022] 具體的,用戶多指滑動(dòng)(例如三指滑動(dòng))時(shí),終端設(shè)備根據(jù)用戶在觸摸屏上的滑動(dòng) 軌跡檢測(cè)觸摸事件的發(fā)生,周期性獲取與每次觸摸事件對(duì)應(yīng)的觸摸事件數(shù)據(jù)(包括當(dāng)前觸 摸事件發(fā)生時(shí)多個(gè)觸摸點(diǎn)的坐標(biāo)和當(dāng)前觸摸事件發(fā)生的時(shí)間)。根據(jù)測(cè)試,一次普通的多指 滑動(dòng)流程,終端設(shè)備會(huì)檢測(cè)到大概7-15次觸摸事件發(fā)生,對(duì)應(yīng)7-15組觸摸事件數(shù)據(jù)。多個(gè) 觸摸點(diǎn)的坐標(biāo)可以是在觸摸屏上左右滑動(dòng)時(shí)對(duì)應(yīng)的X軸坐標(biāo)、在觸摸屏上上下滑動(dòng)時(shí)對(duì)應(yīng) 的Y軸坐標(biāo)等。
[0023] S102,根據(jù)觸摸事件數(shù)據(jù)計(jì)算每個(gè)觸摸點(diǎn)的平均滑動(dòng)速率。
[0024] 具體的,例如根據(jù)某個(gè)觸摸點(diǎn)在某兩次觸摸事件中的坐標(biāo)之差除以兩次觸摸事件 的時(shí)間之差,計(jì)算得到該觸摸點(diǎn)的平均滑動(dòng)速率。采用同樣的方法計(jì)算得到其他觸摸點(diǎn)的 平均滑動(dòng)速率。
[0025] S103,若每個(gè)觸摸點(diǎn)的平均滑動(dòng)速率均大于或者等于預(yù)設(shè)滑動(dòng)速率,則確定用戶 手勢(shì)為多指滑動(dòng)手勢(shì)。
[0026] 具體的,根據(jù)測(cè)試,一次普通的多指滑動(dòng),觸摸點(diǎn)的平均滑動(dòng)速率大概為1. 7個(gè)像 素/毫秒(pixel/millisecond),因此預(yù)設(shè)滑動(dòng)速率可設(shè)置為1. 7個(gè)像素/毫秒,當(dāng)然預(yù)設(shè) 滑動(dòng)速率也可設(shè)置為1. 5~2. 0個(gè)像素/毫秒范圍內(nèi)的其它值。若多個(gè)觸摸點(diǎn)的平均滑動(dòng) 速率全部大于或者等于預(yù)設(shè)滑動(dòng)速率,則確定多指滑動(dòng)事件發(fā)生,即確定用戶當(dāng)前手勢(shì)為 多指滑動(dòng)手勢(shì)。
[0027] 本發(fā)明實(shí)施例的多指滑動(dòng)手勢(shì)的識(shí)別方法,通過(guò)檢測(cè)用戶在觸摸屏上的多次觸摸 事件,并根據(jù)獲取的與每次觸摸事件對(duì)應(yīng)的觸摸事件數(shù)據(jù)計(jì)算每個(gè)觸摸點(diǎn)的平均滑動(dòng)速 率,若每個(gè)觸摸點(diǎn)的平均滑動(dòng)速率均大于或者等于預(yù)設(shè)滑動(dòng)速率,則確定用戶手勢(shì)為多指 滑動(dòng)手勢(shì),實(shí)現(xiàn)了對(duì)用戶多指滑動(dòng)手勢(shì)的識(shí)別,滿足了用戶需求。
[0028] 實(shí)施例二
[0029] 圖2為本發(fā)明提供的多指滑動(dòng)手勢(shì)的識(shí)別方法又一個(gè)實(shí)施例的流程示意圖。本 發(fā)明實(shí)施例的多指滑動(dòng)手勢(shì)的識(shí)別方法可應(yīng)用于各種觸摸屏終端設(shè)備(例如手機(jī)、平板電 腦、導(dǎo)航儀等)中。如圖2所示,本發(fā)明實(shí)施例的多指滑動(dòng)手勢(shì)的識(shí)別方法為圖1所示實(shí)施 例的多指滑動(dòng)手勢(shì)的識(shí)別方法的一種可行實(shí)施方式,具體可包括:
[0030] S201,檢測(cè)用戶在觸摸屏上的多次觸摸事件,并獲取與每次觸摸事件對(duì)應(yīng)的觸摸 事件數(shù)據(jù),觸摸事件數(shù)據(jù)包括多個(gè)觸摸點(diǎn)的坐標(biāo)和觸摸事件的時(shí)間。
[0031] 具體的,步驟S201的具體過(guò)程可參見圖1所示實(shí)施例中的步驟S101中的相關(guān)描 述,此處不再贅述。
[0032] S202,當(dāng)檢測(cè)到觸摸事件的次數(shù)等于預(yù)設(shè)次數(shù)時(shí),根據(jù)第一次觸摸事件對(duì)應(yīng)的觸 摸事件數(shù)據(jù)和最后一次觸摸事件對(duì)應(yīng)的觸摸事件數(shù)據(jù)計(jì)算每個(gè)觸摸點(diǎn)的平均滑動(dòng)速率。
[0033] 具體的,根據(jù)測(cè)試,一次普通的多指滑動(dòng)流程,終端設(shè)備會(huì)檢測(cè)到大概7-15次觸 摸事件發(fā)生,因此預(yù)設(shè)次數(shù)可設(shè)置為7次,當(dāng)然預(yù)設(shè)次數(shù)也可設(shè)置為7~15次范圍內(nèi)的其 他值。預(yù)設(shè)次數(shù)不能過(guò)小,避免過(guò)短滑動(dòng)造成誤判。當(dāng)檢測(cè)到觸摸事件的次數(shù)等于預(yù)設(shè)次 數(shù),例如7次時(shí),可根據(jù)某個(gè)觸摸點(diǎn)在第一次和第七次觸摸事件中的坐標(biāo)之差除以兩次觸 摸事件的時(shí)間之差,計(jì)算得到該觸摸點(diǎn)的平均滑動(dòng)速率。采用同樣的方法計(jì)算得到其他觸 摸點(diǎn)的平均滑動(dòng)速率。
[0034] S203,若每個(gè)觸摸點(diǎn)的平均滑動(dòng)速率均大于或者等于預(yù)設(shè)滑動(dòng)速率,則確定用戶 手勢(shì)為多指滑動(dòng)手勢(shì)。
[0035] 具體的,步驟S203的具體過(guò)程可參見圖1所示實(shí)施例中的步驟S103中的相關(guān)描 述,此處不再贅述。
[0036] 進(jìn)一步的,本發(fā)明實(shí)施例的多指滑動(dòng)手勢(shì)的識(shí)別方法在步驟S203之后,還可以包 括:
[0037] S204,執(zhí)行與多指滑動(dòng)手勢(shì)對(duì)應(yīng)的操作。
[0038] 具體的,若確定用戶當(dāng)前手勢(shì)為多指滑動(dòng)手勢(shì),則執(zhí)行與多指滑動(dòng)手勢(shì)對(duì)應(yīng)的操 作,例如喚起應(yīng)用等,滿足用戶需求。
[0039] 進(jìn)一步的,本發(fā)明實(shí)施例的多指滑動(dòng)手勢(shì)的識(shí)別方法在步驟S202之前,還可以包 括:將觸摸事件數(shù)據(jù)按順序依次存儲(chǔ)于數(shù)組中,數(shù)組的長(zhǎng)度等于預(yù)設(shè)次數(shù)。
[0040] 具體的,數(shù)組即相同數(shù)據(jù)類型的元素按一定順序排列的集合,用于存儲(chǔ)數(shù)據(jù)。終端 設(shè)備可以將觸摸事件數(shù)據(jù)封裝成觸摸數(shù)據(jù)框(Finger Y Data Box)對(duì)象存儲(chǔ)于數(shù)組中。該 數(shù)組的長(zhǎng)度不能太大,否則增加程序運(yùn)行的時(shí)空復(fù)雜度。數(shù)組的長(zhǎng)度可定義為7。
[0041 ] 以數(shù)組長(zhǎng)度為7,三指滑動(dòng)為例,觸摸事件數(shù)據(jù)在數(shù)組中存儲(chǔ)時(shí)的數(shù)據(jù)動(dòng)態(tài)流向如 圖3~圖5所示,其中,圖3為第一次觸摸事件發(fā)生時(shí)觸摸事件數(shù)據(jù)的存儲(chǔ)示意圖,圖4為 第二次觸摸事件發(fā)生時(shí)觸摸事件數(shù)據(jù)的存儲(chǔ)示意圖,圖5為第七次觸摸事件發(fā)生時(shí)觸摸事 件數(shù)據(jù)的存儲(chǔ)示意圖。如圖3~圖5所示,當(dāng)?shù)谝淮斡|摸事件(事件1)發(fā)生時(shí),對(duì)應(yīng)的觸 摸事件數(shù)據(jù)(三個(gè)觸摸點(diǎn)的Y軸坐標(biāo)Yl,Y2, Y3和第一次觸摸事件的時(shí)間T)存儲(chǔ)為數(shù)組中 的第七個(gè)元素;當(dāng)?shù)诙斡|摸事件(事件2)發(fā)生時(shí),第一次觸摸事件對(duì)應(yīng)的觸摸事件數(shù)據(jù) 左移為數(shù)組中的第六個(gè)元素,第二次觸摸事件對(duì)應(yīng)的觸摸事件數(shù)據(jù)(三個(gè)觸摸點(diǎn)的Y軸坐 標(biāo)Yl,Y2, Y3和第二次觸摸事件的時(shí)間T)存儲(chǔ)為數(shù)組中的第七個(gè)元素;如上持續(xù)下去,當(dāng) 第七次觸摸事件(事件7)發(fā)生時(shí),第一次觸摸事件對(duì)應(yīng)的觸摸事件數(shù)據(jù)左移為數(shù)組中的第 一個(gè)元素,第七次觸摸事件對(duì)應(yīng)的觸摸事件數(shù)據(jù)(三個(gè)觸摸點(diǎn)的Y軸坐標(biāo)Y1,Y2, Y3和第七 次觸摸事件的時(shí)間T)存儲(chǔ)為數(shù)組中的第七個(gè)元素,此時(shí)數(shù)組存儲(chǔ)滿。
[0042] 進(jìn)一步的,步驟S202具體可包括:當(dāng)數(shù)組存儲(chǔ)滿時(shí),根據(jù)第一次觸摸事件對(duì)應(yīng)的 觸摸事件數(shù)據(jù)和最后一次觸摸事件對(duì)應(yīng)的觸摸事件數(shù)據(jù)計(jì)算每個(gè)觸摸點(diǎn)的平均滑動(dòng)速率。
[0043] 具體的,當(dāng)數(shù)組未存儲(chǔ)滿即數(shù)組的第一個(gè)元素為空時(shí)不進(jìn)行計(jì)算,避免過(guò)短滑動(dòng) 造成誤判。
[0044] 進(jìn)一步的,本發(fā)明實(shí)施例的多指滑動(dòng)手勢(shì)的識(shí)別方法在步驟S203之后,還可以包 括:清空數(shù)組,避免在一次多指滑動(dòng)事件中連續(xù)多次判定多指滑動(dòng)條件滿足。一個(gè)完整的多 指滑動(dòng)事件后不需要清空數(shù)組,下次有新的觸摸事件數(shù)據(jù)插入數(shù)組后,因?yàn)闀r(shí)間間隔會(huì)很 大,肯定不會(huì)剛觸摸就滿足多指滑動(dòng)的條件。
[0045] 本發(fā)明實(shí)施例的多指滑動(dòng)手勢(shì)的識(shí)別方法可基于安卓(Android)系統(tǒng)的觸摸事 件回調(diào)框架和廣播機(jī)制實(shí)現(xiàn),在Android5. 0后的系統(tǒng)中所有觸摸事件會(huì)在ViewRootlmpl. java類中分發(fā)給在前臺(tái)的應(yīng)用,可以在ViewRootlmpl. java得到當(dāng)前觸摸事件,Android系 統(tǒng)用MotionEvent. java類描述觸摸事件。
[0046] 其中,通過(guò)Android系統(tǒng)可獲得的變量如下:1、單指或多指滑動(dòng)時(shí)可獲得通知事 件 MotionEvent. ACTI0N_M0VE ;2、通過(guò) MotionEvent. GetPointerCount ()可獲得當(dāng)前屏幕 上的觸點(diǎn)總數(shù);3、通過(guò)MotionEvent. GetY(i)可獲得第"i"個(gè)觸點(diǎn)的Y軸坐標(biāo)。
[0047] 其中,測(cè)試獲得的觸摸變量如下:1、一次普通的多指滑動(dòng)流程系統(tǒng)會(huì)返回大概 7-15次觸摸事件;2、一次普通的多指滑動(dòng)平均速率為1. 7piXel/millisec〇nd(基于三星 Gaxlaxy Note8. 0 平板)。
[0048] 具體涉及的java代碼描述如下:
[0049] 1、存儲(chǔ)瞬時(shí)觸摸信息的類
[0050] priYate class FingerYDataBox { //存儲(chǔ)各個(gè)點(diǎn)的Y軸坐標(biāo) float yData[]; long time ; public FingerYDataBox(float[] yData, long time) { th i s. y Data = y Data; this.time = time; } !
[0051] 2、判斷一段時(shí)間平均速率的函數(shù)
[0052] private boolean isMatchVe!ocity(f1oat oldY, float newY, float threshold Velocity,int timeE lapsing) { i*eturn ((old Y-new Y) /time Elapsing)>= threshold Velocity ; }
[0053] 3、清空數(shù)組元素的函數(shù)
[0054] private void clearDataBox(FingerYDataBox[] boxes) {
[0055] for (int i = 0; i < boxes.length; i++) { boxes[i] = null ; }
[0056] 4、判斷多指滑動(dòng)事件是否滿足的函數(shù)
[0057] private boolean isMatchVelocityForMu1tiFingers(FingerYData Box[] dataBoxes,F(xiàn)ingerYDataBox currentBox float thresholdVelocity) { /Z將數(shù)組元素左移 Svstem.arraycopy(dataBoxes, 1 , dataBoxes , 0, dataBoxes.length - 1); /Z將新的事件插入數(shù)組尾部 DataBoxes[dataBoxes.length - 1] = currentBox; //如果數(shù)組首元素為空則不比較 if (dataBoxes[0] == null) return false; int time Elapsing=(int) (currentBox.time-dataBoxes[0].time); boolean result = true; //所有觸摸點(diǎn)平均速率滿足才判定滿足多指滑動(dòng) for (int i = 0? i < dai:aBoxes[0],yData.length; i++) { result; = result && isMatchVelocity(dataBoxes[0]. vData[i], currentBox,yData[i], thresholdVelocity, timeEIapsing); } return result; }
[0058] 5、定義的常量如下
[0059] //閾值速率
[0060] private static final float THRESH0LD_VEL0CITY = 1. 7f ;
[0061] //最少滑動(dòng)保存的觸摸事件數(shù)
[0062] private static final int THRESH0LD_SAVED_P0INT_C0UNT = 7 ;
[0063] private static final int THREE_FINGER_T0UCH = 3 ;
[0064] private static final int FOUR-FINGER-TOUCH = 4 ;
[0065] private static final int FIVE-FINGER-TOUCH = 5 ;
[0066] private FingerYDataBox[JmThreeDataBoxes = new
[0067] FingerYDataBox [THRESHOLD-SAVED-POINT-COUNT] ;private FingerYDataBox[JmFourDataBoxes = new
[0068] FingerYDataBox [THRESH0LD_SAVED_P0INT_C0UNT] private FingerYDataBox[JmFiveDataBoxes = new
[0069] FingerYDataBox[THRESH0LD_SAVED_P0INT_C0UNT];
[0070] 6、判斷是否滿足多指滑動(dòng)的代碼
[0071] public boolean multiFingersFlingTriggered() { int count = getPointerCount(): if (THREE_FlNGER_TOUCH == count) { if (isMatch Velocity ForMultiFingers(mThreeDataB oxes, new FingerYDataBox(new float[] { getY(0), get Y(l), get Y(2)}, getEventTime〇) , T H R E S H O L D_V E L O CITY)) | //滿足條件后清空數(shù)據(jù),避免連續(xù)滿足條件 C1 ear D ata B o x {m T h ree D at a B o x e s); return true; J else if (FOUR_FINGER_TOUCH== count) { if (isMat:chVe 1 ocityForMu 11iFingers(mFourDataBoxes * new FingerYDataBox(new float[] {
[0072] getY(O), getY(l), getY(2), get;Y(3)}, getEventTime()), THRESHOLD VELOCITY)) { clearDataBox(mThreeDataBoxes); return true; ! } else if (FIVE FINGER TOUCH == count) { if (isMatchVeiocityForMultiFingers(mF;iveDataBoxes , new FingerYDataBox(new f1oat[] { getY(O), getY(l), getY(2), getY(3), get Y(4)}, getEventTimeO), THRESHOLD_VELOCITY)) { c3earDataBox(mThreeDataBoxes); return true; } } return false; }
[0073] 本發(fā)明實(shí)施例的多指滑動(dòng)手勢(shì)的識(shí)別方法,通過(guò)檢測(cè)用戶在觸摸屏上的多次觸摸 事件,并根據(jù)獲取的與每次觸摸事件對(duì)應(yīng)的觸摸事件數(shù)據(jù)計(jì)算每個(gè)觸摸點(diǎn)的平均滑動(dòng)速 率,若每個(gè)觸摸點(diǎn)的平均滑動(dòng)速率均大于或者等于預(yù)設(shè)滑動(dòng)速率,則確定用戶手勢(shì)為多指 滑動(dòng)手勢(shì),實(shí)現(xiàn)了對(duì)用戶多指滑動(dòng)手勢(shì)的識(shí)別,滿足了用戶需求。
[0074] 實(shí)施例三
[0075] 圖6為本發(fā)明提供的多指滑動(dòng)手勢(shì)的識(shí)別裝置一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。本發(fā)明 實(shí)施例的多指滑動(dòng)手勢(shì)的識(shí)別裝置可設(shè)置在各種觸摸屏終端設(shè)備(例如手機(jī)、平板電腦、 導(dǎo)航儀等)中,執(zhí)行圖1所示實(shí)施例的多指滑動(dòng)手勢(shì)的識(shí)別方法。如圖6所示,本發(fā)明實(shí)施 例的多指滑動(dòng)手勢(shì)的識(shí)別裝置具體可包括檢測(cè)模塊61、計(jì)算模塊62和確定模塊63。其中:
[0076] 檢測(cè)模塊61,用于檢測(cè)用戶在觸摸屏上的多次觸摸事件,并獲取與每次觸摸事件 對(duì)應(yīng)的觸摸事件數(shù)據(jù),觸摸事件數(shù)據(jù)包括多個(gè)觸摸點(diǎn)的坐標(biāo)和觸摸事件的時(shí)間。
[0077] 計(jì)算模塊62,用于根據(jù)觸摸事件數(shù)據(jù)計(jì)算每個(gè)觸摸點(diǎn)的平均滑動(dòng)速率。
[0078] 確定模塊63,用于若每個(gè)觸摸點(diǎn)的平均滑動(dòng)速率均大于或者等于預(yù)設(shè)滑動(dòng)速率, 則確定用戶手勢(shì)為多指滑動(dòng)手勢(shì)。
[0079] 具體的,本發(fā)明實(shí)施例的多指滑動(dòng)手勢(shì)的識(shí)別裝置中各模塊實(shí)現(xiàn)其功能的具體過(guò) 程可參見圖1所示方法實(shí)施例中的相關(guān)描述,此處不再贅述。
[0080] 本發(fā)明實(shí)施例的多指滑動(dòng)手勢(shì)的識(shí)別裝置,通過(guò)檢測(cè)用戶在觸摸屏上的多次觸摸 事件,并根據(jù)獲取的與每次觸摸事件對(duì)應(yīng)的觸摸事件數(shù)據(jù)計(jì)算每個(gè)觸摸點(diǎn)的平均滑動(dòng)速 率,若每個(gè)觸摸點(diǎn)的平均滑動(dòng)速率均大于或者等于預(yù)設(shè)滑動(dòng)速率,則確定用戶手勢(shì)為多指 滑動(dòng)手勢(shì),實(shí)現(xiàn)了對(duì)用戶多指滑動(dòng)手勢(shì)的識(shí)別,滿足了用戶需求。
[0081] 實(shí)施例四
[0082] 圖7為本發(fā)明提供的多指滑動(dòng)手勢(shì)的識(shí)別裝置又一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。本 發(fā)明實(shí)施例的多指滑動(dòng)手勢(shì)的識(shí)別裝置可設(shè)置在各種觸摸屏終端設(shè)備(例如手機(jī)、平板電 腦、導(dǎo)航儀等)中,執(zhí)行圖2所示實(shí)施例的多指滑動(dòng)手勢(shì)的識(shí)別方法。如圖7所示,本發(fā)明 實(shí)施例的多指滑動(dòng)手勢(shì)的識(shí)別裝置在圖6所示實(shí)施例的基礎(chǔ)上,計(jì)算模塊62具體可用于:
[0083] 當(dāng)檢測(cè)到觸摸事件的次數(shù)等于預(yù)設(shè)次數(shù)時(shí),根據(jù)第一次觸摸事件對(duì)應(yīng)的觸摸事件 數(shù)據(jù)和最后一次觸摸事件對(duì)應(yīng)的觸摸事件數(shù)據(jù)計(jì)算每個(gè)觸摸點(diǎn)的平均滑動(dòng)速率。
[0084] 進(jìn)一步的,本發(fā)明實(shí)施例的多指滑動(dòng)手勢(shì)的識(shí)別裝置還可以包括:存儲(chǔ)模塊71, 用于將觸摸事件數(shù)據(jù)按順序依次存儲(chǔ)于數(shù)組中,數(shù)組的長(zhǎng)度等于預(yù)設(shè)次數(shù)。
[0085] 進(jìn)一步的,計(jì)算模塊62具體可用于:當(dāng)數(shù)組存儲(chǔ)滿時(shí),根據(jù)第一次觸摸事件對(duì)應(yīng) 的觸摸事件數(shù)據(jù)和最后一次觸摸事件對(duì)應(yīng)的觸摸事件數(shù)據(jù)計(jì)算每個(gè)觸摸點(diǎn)的平均滑動(dòng)速 率。
[0086] 進(jìn)一步的,確定模塊63還可用于:在確定用戶手勢(shì)為多指滑動(dòng)手勢(shì)之后,清空數(shù) 組。
[0087] 其中,預(yù)設(shè)滑動(dòng)速率可為1. 7個(gè)像素/毫秒,坐標(biāo)包括X軸坐標(biāo)或Y軸坐標(biāo),預(yù)設(shè) 次數(shù)可為7次。
[0088] 進(jìn)一步的,確定模塊63還可用于:在確定用戶手勢(shì)為多指滑動(dòng)手勢(shì)之后,執(zhí)行與 多指滑動(dòng)手勢(shì)對(duì)應(yīng)的操作。
[0089] 具體的,本發(fā)明實(shí)施例的多指滑動(dòng)手勢(shì)的識(shí)別裝置中各模塊實(shí)現(xiàn)其功能的具體過(guò) 程可參見圖2所示方法實(shí)施例中的相關(guān)描述,此處不再贅述。
[0090] 本發(fā)明實(shí)施例的多指滑動(dòng)手勢(shì)的識(shí)別裝置,通過(guò)檢測(cè)用戶在觸摸屏上的多次觸摸 事件,并根據(jù)獲取的與每次觸摸事件對(duì)應(yīng)的觸摸事件數(shù)據(jù)計(jì)算每個(gè)觸摸點(diǎn)的平均滑動(dòng)速 率,若每個(gè)觸摸點(diǎn)的平均滑動(dòng)速率均大于或者等于預(yù)設(shè)滑動(dòng)速率,則確定用戶手勢(shì)為多指 滑動(dòng)手勢(shì),實(shí)現(xiàn)了對(duì)用戶多指滑動(dòng)手勢(shì)的識(shí)別,滿足了用戶需求。
[0091] 實(shí)施例五
[0092] 圖8為本發(fā)明提供的終端設(shè)備一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。本發(fā)明實(shí)施例的終端設(shè) 備具體可為各種觸摸屏終端設(shè)備(例如手機(jī)、平板電腦、導(dǎo)航儀等),可執(zhí)行圖1或圖2所示 實(shí)施例的多指滑動(dòng)手勢(shì)的識(shí)別方法。如圖8所示,本發(fā)明實(shí)施例的終端設(shè)備81包括上述圖 6或圖7所示實(shí)施例的多指滑動(dòng)手勢(shì)的識(shí)別裝置82。
[0093] 具體的,本發(fā)明實(shí)施例的終端設(shè)備81中的多指滑動(dòng)手勢(shì)的識(shí)別裝置82實(shí)現(xiàn)其功 能的具體過(guò)程可參見圖1或圖2所示實(shí)施例中的相關(guān)描述,此處不再贅述。
[0094] 本發(fā)明實(shí)施例的終端設(shè)備,通過(guò)檢測(cè)用戶在觸摸屏上的多次觸摸事件,并根據(jù)獲 取的與每次觸摸事件對(duì)應(yīng)的觸摸事件數(shù)據(jù)計(jì)算每個(gè)觸摸點(diǎn)的平均滑動(dòng)速率,若每個(gè)觸摸點(diǎn) 的平均滑動(dòng)速率均大于或者等于預(yù)設(shè)滑動(dòng)速率,則確定用戶手勢(shì)為多指滑動(dòng)手勢(shì),實(shí)現(xiàn)了 對(duì)用戶多指滑動(dòng)手勢(shì)的識(shí)別,滿足了用戶需求。
[0095] 本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通 過(guò)程序指令相關(guān)的硬件來(lái)完成。前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。該程 序在執(zhí)行時(shí),執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:ROM、RAM、磁碟 或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0096] 最后應(yīng)說(shuō)明的是:以上各實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制; 盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其 依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征 進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技 術(shù)方案的范圍。
【主權(quán)項(xiàng)】
1. 一種多指滑動(dòng)手勢(shì)的識(shí)別方法,其特征在于,包括: 檢測(cè)用戶在觸摸屏上的多次觸摸事件,并獲取與每次觸摸事件對(duì)應(yīng)的觸摸事件數(shù)據(jù), 所述觸摸事件數(shù)據(jù)包括多個(gè)觸摸點(diǎn)的坐標(biāo)和所述觸摸事件的時(shí)間; 根據(jù)所述觸摸事件數(shù)據(jù)計(jì)算每個(gè)所述觸摸點(diǎn)的平均滑動(dòng)速率; 若每個(gè)所述觸摸點(diǎn)的所述平均滑動(dòng)速率均大于或者等于預(yù)設(shè)滑動(dòng)速率,則確定用戶手 勢(shì)為多指滑動(dòng)手勢(shì)。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述觸摸事件數(shù)據(jù)計(jì)算每個(gè)所 述觸摸點(diǎn)的平均滑動(dòng)速率包括: 當(dāng)檢測(cè)到所述觸摸事件的次數(shù)等于預(yù)設(shè)次數(shù)時(shí),根據(jù)第一次觸摸事件對(duì)應(yīng)的所述觸摸 事件數(shù)據(jù)和最后一次觸摸事件對(duì)應(yīng)的所述觸摸事件數(shù)據(jù)計(jì)算每個(gè)所述觸摸點(diǎn)的所述平均 滑動(dòng)速率。3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括:將所述觸摸事件數(shù)據(jù)按順序依次 存儲(chǔ)于數(shù)組中,所述數(shù)組的長(zhǎng)度等于所述預(yù)設(shè)次數(shù); 所述檢測(cè)到所述觸摸事件的次數(shù)等于預(yù)設(shè)次數(shù)為所述數(shù)組存儲(chǔ)滿的情況。4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述確定用戶手勢(shì)為多指滑動(dòng)手勢(shì)之后, 還包括: 清空所述數(shù)組。5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述確定用戶手勢(shì)為多指滑動(dòng)手勢(shì)之后, 還包括: 執(zhí)行與所述多指滑動(dòng)手勢(shì)對(duì)應(yīng)的操作。6. -種多指滑動(dòng)手勢(shì)的識(shí)別裝置,其特征在于,包括: 檢測(cè)模塊,用于檢測(cè)用戶在觸摸屏上的多次觸摸事件,并獲取與每次觸摸事件對(duì)應(yīng)的 觸摸事件數(shù)據(jù),所述觸摸事件數(shù)據(jù)包括多個(gè)觸摸點(diǎn)的坐標(biāo)和所述觸摸事件的時(shí)間; 計(jì)算模塊,用于根據(jù)所述觸摸事件數(shù)據(jù)計(jì)算每個(gè)所述觸摸點(diǎn)的平均滑動(dòng)速率; 確定模塊,用于若每個(gè)所述觸摸點(diǎn)的所述平均滑動(dòng)速率均大于或者等于預(yù)設(shè)滑動(dòng)速 率,則確定用戶手勢(shì)為多指滑動(dòng)手勢(shì)。7. 根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述計(jì)算模塊具體用于: 當(dāng)檢測(cè)到所述觸摸事件的次數(shù)等于預(yù)設(shè)次數(shù)時(shí),根據(jù)第一次觸摸事件對(duì)應(yīng)的所述觸摸 事件數(shù)據(jù)和最后一次觸摸事件對(duì)應(yīng)的所述觸摸事件數(shù)據(jù)計(jì)算每個(gè)所述觸摸點(diǎn)的所述平均 滑動(dòng)速率。8. 根據(jù)權(quán)利要求7所述的裝置,其特征在于,還包括: 存儲(chǔ)模塊,用于將所述觸摸事件數(shù)據(jù)按順序依次存儲(chǔ)于數(shù)組中,所述數(shù)組的長(zhǎng)度等于 所述預(yù)設(shè)次數(shù); 所述計(jì)算模塊具體用于:當(dāng)所述數(shù)組存儲(chǔ)滿時(shí),根據(jù)第一次觸摸事件對(duì)應(yīng)的所述觸摸 事件數(shù)據(jù)和最后一次觸摸事件對(duì)應(yīng)的所述觸摸事件數(shù)據(jù)計(jì)算每個(gè)所述觸摸點(diǎn)的所述平均 滑動(dòng)速率。9. 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述確定模塊還用于: 在所述確定用戶手勢(shì)為多指滑動(dòng)手勢(shì)之后,清空所述數(shù)組。10. 根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述確定模塊還用于: 在所述確定用戶手勢(shì)為多指滑動(dòng)手勢(shì)之后,執(zhí)行與所述多指滑動(dòng)手勢(shì)對(duì)應(yīng)的操作。11. 一種終端設(shè)備,其特征在于,包括如權(quán)利要求6-10任一項(xiàng)所述的多指滑動(dòng)手勢(shì)的 識(shí)別裝置。
【文檔編號(hào)】G06F3/0488GK105892895SQ201510698229
【公開日】2016年8月24日
【申請(qǐng)日】2015年10月23日
【發(fā)明人】姜洋, 周路璐
【申請(qǐng)人】樂(lè)卡汽車智能科技(北京)有限公司