專利名稱:解釋觸摸屏上的有歧義輸入的制作方法
解釋觸摸屏上的有歧義輸入背景在觸摸屏上直接觸摸并操縱數據的能力對用戶有強大的吸引力。在許多方面,觸 摸屏可用作比傳統(tǒng)鼠標更有利的輸入機制。在使用觸摸屏時,用戶可以直接在他們想要選 擇的用戶界面元素上簡單地輕擊屏幕,而非必須使用鼠標將光標置于該用戶界面上。然而, 用戶通常發(fā)現難以像他們使用鼠標那樣準確地在觸摸屏上選擇項或點擊目標。概述提供本概述是為了以簡化的形式介紹將在以下詳細描述中進一步描述的一些概 念。本概述不旨在標識所要求保護的主題的關鍵特征或本質特征,也不旨在用于幫助確定 所要求保護的主題的范圍。本發(fā)明的各實施例允許分析觸摸屏顯示器上的觸摸以確定該觸摸是否與點擊目 標相對應。如果觸摸屏上的觸摸不與點擊目標相對應,則可以執(zhí)行搜索以確定鄰近點擊目 標。隨后可以將該觸摸與鄰近點擊目標相關聯。本發(fā)明的又一些實施例涉及對觸摸屏上的 可與超過一個點擊目標相對應的觸摸進行消歧。根據本發(fā)明的一實施例,可以提供便于相對于觸摸屏顯示器上的點擊目標來準確 地確定觸摸輸入的目標的計算設備。該計算設備可包括對觸摸屏顯示器上的觸摸進行傳感 的觸摸檢測組件。該計算設備還可包括搜索鄰近點擊目標的目標確定組件以及便于將該觸 摸與適當的點擊目標相關聯的消歧組件。本發(fā)明的這些和其他方面將在閱讀以下說明書、附圖和權利要求書后變得對本領 域的普通技術人員顯而易見。附圖簡述下面將參考附圖詳細描述本發(fā)明,其中
圖1是適用于實現本發(fā)明的示例性計算環(huán)境的框圖;圖2是示出根據本發(fā)明的一實施例的示例性系統(tǒng)的框圖;圖3是示出根據本發(fā)明的一實施例的對與顯示在觸摸屏顯示器上的一個或多個 點擊目標相關的有歧義觸摸輸入進行解釋的示例性方法的流程圖;圖4是示出根據本發(fā)明的一實施例的用于確定與觸摸的位置相對應的第一點擊 目標的示例性算法的流程圖;圖5是示出根據本發(fā)明的一實施例的觸摸目標解釋算法的示例性執(zhí)行的示意圖; 以及圖6是示出根據本發(fā)明的一實施例的消歧放大器的示例性屏幕截圖。詳細描述此處用細節(jié)來描述本發(fā)明的主題以滿足法定要求。然而,該描述本身并非旨在限 制本專利的范圍。相反,發(fā)明人設想所要求保護的主題還可結合其他當前或未來技術按照 其他方式來具體化,以包括不同的步驟或類似于本文中所描述的步驟的步驟組合。此外,盡 管術語“步驟”和/或“框”可在此處用于指示所采用的方法的不同元素,但除非而且僅當 明確描述了各個步驟的順序時,該術語不應被解釋為意味著此處公開的各個步驟之中或之間的任何特定順序。其中可實現本發(fā)明的各方面的示例性操作環(huán)境在下文中描述,以便為本發(fā)明的各 方面提供一般上下文。首先具體參考圖1,示出了用于實現本發(fā)明的各實施方式的示例性操 作環(huán)境,并將其概括地指定為計算設備100。計算設備100只是合適的計算環(huán)境的一個示 例,并且不旨在對本發(fā)明的使用范圍或功能提出任何限制。也不應該將計算設備100解釋 為對所示出的任一組件或其組合有任何依賴性或要求。本發(fā)明可以在計算機代碼或機器可使用指令(包括由計算機或諸如個人數據助 理或其他手持式設備之類的其他機器執(zhí)行的諸如程序模塊之類的計算機可執(zhí)行指令)的 一般上下文中來描述。一般而言,包括例程、程序、對象、組件、數據結構等的程序模塊指的 是執(zhí)行特定任務或實現特定抽象數據類型的代碼。本發(fā)明可以在各種系統(tǒng)配置中實施,這 些系統(tǒng)配置包括手持式設備、消費電子產品、通用計算機、更專用計算設備等等。例如,本發(fā) 明可以在自動提款機(ATM)、移動電話、銷售點設備、信息自助服務終端和投票亭中實施。本 發(fā)明也可以在其中任務由通過通信網絡鏈接的遠程處理設備執(zhí)行的分布式計算環(huán)境中實 施。參考圖1,示例性計算設備100包括直接或間接耦合以下設備的總線110 存儲器 112、一個或多個處理器114、一個或多個呈現組件116、輸入/輸出端口 118、輸入/輸出組 件120、和說明性電源122??偩€110可以是一條或多條總線(諸如地址總線、數據總線、或 其組合)。盡管為了清楚起見用線條示出了圖1的各框,但是在現實中,各組件的劃界并不 是那樣清楚,并且按比喻的說法,更精確而言這些線條將是灰色的和模糊的。例如,可以將 諸如顯示設備等的呈現組件認為是I/O組件。而且,處理器具有存儲器。可以認識到,這是 本領域的特性,并且重申,圖1的圖示只是例示可結合本發(fā)明的一個或多個實施方式來使 用的示例性計算設備。諸如“工作站”、“服務器”、“膝上型計算機”、“手持式設備”等分類之 間沒有區(qū)別,它們全部都被認為是在圖1的范圍之內的并且被稱為“計算設備”。計算設備100通常包括各種計算機可讀介質。計算機可讀介質可以是能由計算設 備100訪問的任何可用介質,而且包含易失性和非易失性介質、可移動和不可移動介質。作 為示例而非限制,計算機可讀介質可以包括計算機存儲介質。計算機存儲介質包括以用于 存儲諸如計算機可讀指令、數據結構、程序模塊或其他數據的信息的任何方法和技術實現 的易失性和非易失性、可移動和不可移動介質。計算機存儲介質包括但不限于,RAM、ROM、 EPR0M、閃存或其他存儲器技術、CD-ROM、數字多功能盤(DVD)或其他光學存儲、磁帶盒、磁 帶、磁盤存儲或其他磁存儲設備、或能用于存儲所需信息且可以由計算設備100訪問的任 何其他介質。存儲器112包括易失性和/或非易失性存儲器形式的計算機存儲介質。存儲器可 以是可移動的、不可移動的、或其組合。示例性硬件設備包括固態(tài)存儲器、硬盤驅動器、光盤 驅動器等。計算設備100包括從諸如存儲器112或I/O組件120等各種實體讀取數據的一 個或多個處理器。呈現組件116向用戶或其他設備呈現數據指示。示例性呈現組件包括顯 示設備、揚聲器、打印組件、振動組件等等。I/O端口 118允許計算設備100在邏輯上耦合至包括I/O組件120的其他設備,其 中某些設備可以是內置的。說明性組件包括話筒、操縱桿、游戲手柄、圓盤式衛(wèi)星天線、掃描 儀、打印機、無線設備、鍵盤、筆、語音輸入設備、觸摸輸入設備、觸摸屏設備、交互式顯示設備、或鼠標。如上所述,在一個實施例中,本發(fā)明涉及通過利用搜索鄰近點擊目標的算法來解 釋與觸摸屏顯示器上的點擊目標相關的有歧義的點擊事件。另一實施例涉及用于檢測觸 摸,確定該觸摸是應當與右擊事件、左擊事件、還是拖曳事件相對應,以及確定該觸摸事件 是否應當發(fā)生的機制。轉向圖2,示出了例示根據本發(fā)明的一實施例的示例性計算設備200的相關組件 的框圖。如圖2所示,首先在觸摸檢測組件210中接收到觸摸輸入。觸摸輸入通常是由用 戶生成的、使得諸如用戶的手指或指示筆等對象與觸摸屏設備的表面進行接觸的輸入。通 常,觸摸屏不向用戶顯示允許使用指示筆或手指來確定目標的光標或任何其他反饋。雖然 涉及使用指示筆的許多應用程序具有懸停行為,其中光標或窗口小部件顯示在指示筆的位 置的正下方,但其他應用程序和設備不具有這一特征。接受來自與觸摸屏相接觸的手指的 輸入的大多數應用程序不提供這樣的特征,或者如果它們提供,則光標通常只在觸摸之后 出現因此對確定目標沒有幫助。此外,因為用戶的手指一般比指示筆大,所以用戶更難以看到手指正下方是什么, 從而使得確定目標更加困難。在一些情況下,例如,在許多ATM的情況下,在觸摸屏上布置 了使得觸摸屏上的對象的外顯位置失真(一種稱為視差的現象)的保護性玻璃,這可使得 使用手指確定目標更加復雜。因此,顯而易見,本發(fā)明可適用于接受來自指示筆或手指的觸 摸屏輸入的計算設備,但當本發(fā)明應用于手指輸入的上下文中時,本發(fā)明所提供的優(yōu)點可 能更重要。參考圖2,觸摸屏設備200可包括例如觸敏顯示屏。通常,觸敏顯示屏包括構建在 顯示組件215上并被配置成呈現與顯示組件215所顯示的圖像相對應的觸摸表面的觸摸檢 測組件210 (即觸摸傳感器)。因此,用戶可以通過觸摸觸摸檢測組件210的位于所顯示的 對象的正上方的部分來操縱該對象。在其他實施例中,如此處所使用的,觸摸屏設備可包括 被配置成作為使用手指或諸如指示筆等其他物體觸摸表面的結果向計算設備提供輸入的 任何設備。例如,在一實施例中,觸摸屏設備200可包括與顯示組件215分開提供的觸摸墊。顯示組件215以類似于個人計算機上的典型監(jiān)視器的方式顯示圖像。包括觸摸屏 的便攜式設備將可能因為液晶顯示器的低重量和小深度而使用該顯示器。其他顯示器技術 是可能的,諸如例如陰極射線管、等離子屏、電發(fā)光屏、或有機發(fā)光二極管。在一實施例中,觸摸檢測組件210位于顯示組件215之上。觸摸檢測組件210是 透明的以使得可通過其看見顯示組件215。本領域中已知有許多觸摸檢測技術,包括四線、 五線及八線電阻、電容、近場、光學、以及聲波。觸摸檢測組件210—般檢測一組坐標軸內的 觸摸,從而標識與觸摸相對應的垂直和水平坐標。觸摸的垂直和水平坐標被發(fā)送到圖2中 示出的目標確定組件220。在一些實施例中,觸摸檢測組件可以檢測多個同時觸摸,這些觸摸中的每一個與 特定一組坐標相對應。如本領域技術人員容易明白的,本發(fā)明的各方面可以在能夠接收和 處理多個同時觸摸的設備以及只能夠處理單個觸摸的設備中實現。目標確定組件220應用某一算法來確定觸摸是否將觸發(fā)點擊事件。如本文全文中 所使用的,點擊事件可包括可以通過觸摸觸摸屏設備來觸發(fā)的任何類型的輸入事件。在一 個實施例中,點擊事件可包括諸如“左擊”或“右擊”等點擊。本領域技術人員將容易理解,雖然術語“點擊”最初是指通過按下位于鼠標上的按鈕來觸發(fā)的輸入事件,但該術語現在可 寬泛地指通過用戶輸入觸發(fā)的任何類似的事件,如通過觸摸屏上的觸摸。在一實施例中,點 擊事件可包括諸如例如左擊事件、右擊事件、或拖曳事件等動作。例如,在使用鼠標時,用戶 可以通過將與該鼠標相對應的光標定位在所需點擊目標上方并按下且釋放位于鼠標頂部 的左按鈕來觸發(fā)左擊事件。類似地,根據本發(fā)明的一個實施例,用戶可以例如通過輕擊觸摸屏上的位于所需 點擊目標上方的位置來觸發(fā)左擊事件。用戶可以例如通過將他或她的手指置于觸摸屏上 點擊目標上方的位置處并將他或她的手指保持在該位置處持續(xù)特定時間量來觸發(fā)右擊事 件。此外,在一實施方式中,用戶可以通過將他或她的手指置于觸摸屏上并且在不提起他或 她的手指的情況下將他或她的手指從觸摸屏上的一個位置拖曳到其上的另一位置來觸發(fā) 拖曳事件。在各實施例中,如本文所使用的,點擊事件可包括其他輸入事件,如拖曳、旋轉輕 擊、保持、敲擊、保持-拖曳轉點擊、墨水拖曳、或姿勢。目標確定組件220通過首先確定觸摸的位置是否與點擊目標的位置(可被稱為點 擊目標位置)相對應來確定觸摸是否將觸發(fā)點擊事件。目標確定組件220隨后應用某一算 法來確定觸摸位置的附近是否存在一個或多個點擊目標位置。表示觸摸和相關聯的點擊目 標的數據在一消息中被發(fā)送到事件檢測組件230。消歧組件230便于將觸摸與適當的點擊目標相關聯。在一個實施例中,如果在觸 摸位置的附近只找到一個點擊目標位置,則消歧組件230通過將該觸摸同與該點擊目標位 置相對應的點擊目標進行關聯來生成點擊事件。在一實施例中,該點擊目標位置可以與觸 摸的位置相對應。在另一實施例中,該點擊目標位置可以與觸摸的位置附近的位置相對應。 所得點擊事件可由控制顯示器215和觸摸檢測210組件的應用程序或操作系統(tǒng)實用程序使 用或顯示。在又一實施例中,消歧組件230可以提供消除觸摸的位置周圍的區(qū)域的歧義的放 大器。在一實施例中,如果觸摸的位置附近存在超過一個點擊目標,則提供放大器。如此處 所使用的,放大器可包括顯示包含點擊目標的一部分用戶界面的放大視圖的任何用戶界面 或對用戶界面的修改。在一實施例中,放大器可以是例如疊加在第一用戶界面上的第二用 戶界面,從而給出將放大鏡保持在第一用戶界面的一部分上方的效果。在各實施例中,可以 配置放大器以使得用戶可以用同用戶可與顯示在第一或任何其他用戶界面上的對象進行 交互的完全相同的方式來與顯示在該放大器內的對象進行交互。例如,用戶能夠對放大器 中呈現的對象執(zhí)行任何數量的操作,如點擊、拖曳、右擊,等等。因此,可以在不犧牲用戶界 面的任何功能的情況下提供放大器。簡要轉向圖6,示出了根據本發(fā)明的一實施例的例示了消歧放大器的示例性屏幕 截圖。在該示例中,呈現了作為第二用戶界面的給出保持在第一用戶界面620的一部分的 上方的放大透鏡的效果的放大器610。如圖6所示,用戶界面620包括諸如在電話上找到的 小鍵盤等虛擬小鍵盤的顯示畫面。在該示例中,計算設備確定存在位于觸摸的位置附近的 兩個點擊目標630。如圖6所示,放大器610將位于觸摸位置附近的點擊目標630顯示成比 也可以是點擊目標的其他對象640更大。在圖6所示的實施例中,放大器610通過在該放 大器的中心提供最大放大程度來給出“魚眼”透鏡的效果。放大程度朝該放大器的外邊逐 漸降低,如在650所示。圖6所示的圖示只是可根據本發(fā)明的各實現利用的放大器的示例。
現在轉向圖3,提供了示出根據本發(fā)明的一實施例的用于對與顯示在觸摸屏顯示 器上的一個或多個點擊目標相關的有歧義觸摸輸入進行解釋的示例性方法300的流程圖。 雖然方法300被呈現成一系列步驟,但本領域技術人員將明白,根據本發(fā)明的涉及圖3示出 的相同或相似步驟的類似方法可以但以不同的次序來執(zhí)行。該示例中的任何方面都不旨在 將這樣的方法的實現限于此處所示的特定步驟次序。最初,如在步驟310所示,在被選擇來控制觸摸屏顯示器的應用程序或操作系統(tǒng) 實用程序的指導下,將一個或多個點擊目標顯示在觸摸屏顯示器上。點擊目標可以是與觸 摸屏顯示器的規(guī)定區(qū)域相對應的對象,即點擊目標位置,配置這些點擊目標位置以便與觸 摸屏的這些規(guī)定區(qū)域進行接觸使得應用程序或操作系統(tǒng)實用程序如同典型計算機監(jiān)視器 的類似區(qū)域被鼠標點擊了那樣來作出響應。點擊目標位置可包括觸摸屏顯示器上的一個或 多個像素。如本領域技術人員將容易明白的,點擊目標可以例如由諸如JPEG或GIF等圖像、 按鈕、滾動條、文本等來表示。本領域技術人員將明白,點擊目標可包括結合交互式顯示系 統(tǒng)使用的任何數量的各種對象。另外,點擊目標可被配置成能夠移動到觸摸屏顯示器上的 不同位置。例如,一般可以利用鼠標來將表示文件夾內的文件的圖標從一個位置拖曳到另 一位置。這樣的圖標是點擊目標的示例,并且顯而易見的是許多這樣的點擊目標能夠以各 種方式被移動和操縱,如通過將第一文件夾拖曳“進”第二文件夾,從而使得第一文件夾成 為第二文件夾的子文件夾。本發(fā)明可適用于在點擊目標的這些以及其他已知應用中的任一 個的上下文中操作。再次參考圖3,如在步驟320所示,當在觸摸屏上顯示點擊目標之后,可在第一觸 摸屏位置處檢測到觸摸。在本發(fā)明的一實施例中,例如,觸摸是通過標識表示觸摸屏上的用 戶的手指所接觸的位置的一對坐標來檢測的。該觸摸可以在觸摸屏上的與點擊目標相對應 的位置中作出或不在該位置中作出。觸摸例如可包括用戶輕擊觸摸屏、將他或她的手指擱 在觸摸屏上、或跨觸摸屏來移動他或她的手指。此外,觸摸屏可被配置成檢測與任何物體的 接觸,或可被配置成只檢測來自諸如指示筆等特定物體的接觸。如圖3所示,在步驟330,一旦檢測到觸摸,則進行搜索以尋找與該觸摸的位置相 關聯的預定點擊區(qū)域內的第一點擊目標位置。在本發(fā)明的一個實施例中,通過查詢點擊目 標所關聯的應用程序來標識點擊目標位置以確定顯示器的哪些像素與點擊目標相對應,因 為應用程序可能定義了它們。在本發(fā)明的一個實施例中,使用可訪問性框架來查詢該應用 程序。如本文所使用的,可訪問性框架可包括能夠查詢應用程序以接收與用戶界面上的 對象有關的信息的任何框架、系統(tǒng)、程序、或應用程序。接收到的信息可包括諸如對象是否 是點擊目標等信息。例如,可訪問性框架可包括諸如可從華盛頓州雷蒙德市的微軟公司 獲得的微軟 ActiveAccessibility 、同樣可從華盛頓州雷蒙德市的微軟公司獲得的微軟 UIAutomation、以及可從紐約州阿蒙克市的國際商業(yè)機器公司獲得的IAccessible2等 框架。在另一實施例中,本領域技術人員將明白,點擊目標可以通過使用被配置成走查 文檔樹的應用程序專用代碼來標識。在又一實施例中,可以提供新應用程序可向其注冊以 便于標識點擊目標的插件模型。在又一實施例中,通過提供檢測特定情況并使得調用本文描述的方法或組件的特定變型的代碼,可基于與其相關聯的各種屬性來將本文描述的這些 方法的變型應用于不同的應用程序、窗口、或框架。另外,如本領域技術人員將容易明白的, 本文描述的方法和系統(tǒng)在某些情況下可能是不適當的,并且本發(fā)明可被配置成檢測這些情 況,如通過從應用程序接收提示或通過執(zhí)行自動地檢測該情況的代碼。在這樣的情況下,可 以禁用本發(fā)明的各方面以提供經改進的用戶體驗。在本發(fā)明的一實施例中,第一點擊目標位置是與第一點擊目標相對應的觸摸屏位 置。本領域技術人員將明白,為執(zhí)行步驟330-390,可以使用某一算法來檢查與觸摸的位置 相關聯的預定點擊區(qū)域內的連續(xù)的測試位置以確定測試位置中的任一個是否與點擊目標 位置相對應。這樣的算法的示例在以下參考圖4討論。在一實施例中,與觸摸位置相關聯 的預定點擊區(qū)域可以由一組測試位置來定義。例如,在一個實施例中,預定點擊區(qū)域可以與 觸摸屏的、圍繞觸摸位置的、由距觸摸位置最遠的測試位置來定界的區(qū)域相對應。在另一實 施例中,可以例如通過選擇特定數量的測試位置來定義預定點擊區(qū)域。在各種其他實施例 中,點擊區(qū)域可以任意地定義或根據本領域技術人員已知的任何數量的各種其他策略來定 義。在一個實施例中,點擊區(qū)域的邊界可以是使計算時間作為其輸入的函數的輸出。在這 樣的實施例中,該算法將在自它開始后過去了特定時間量之后停止。繼續(xù)參考圖3,如在步驟340所示,作出關于作為步驟300的搜索的結果是否找到 第一點擊目標位置的判定。如果未找到第一點擊目標,則將觸摸與該觸摸位置相關聯,如在 步驟350所示,并且不觸發(fā)點擊事件。如果在預定點擊區(qū)域找到第一點擊目標,則如在步驟 360所示,執(zhí)行進一步搜索以確定預定點擊區(qū)域中是否存在任何附加點擊目標位置。本領域 技術人員將理解,任何給定點擊區(qū)域中可存在任何數量的點擊目標位置。如在圖3的步驟370所示,作出關于在預定點擊區(qū)域中是否找到任何附加點擊目 標位置的判定。如果未找到附加點擊目標,則如在步驟380所示,將觸摸同與第一點擊目標 位置相對應的第一點擊目標相關聯。在一個實施例中,這一關聯可以在沒有來自用戶的任 何進一步輸入的情況下自動地執(zhí)行。在其他實施例中,可以向用戶呈現是否將觸摸與第一 點擊目標進行關聯的選項。在另一方面,如果在預定點擊區(qū)域中找到了附加點擊目標位置,則如在圖3的步 驟390所示,消除該觸摸的歧義。在一個實施例中,如以上參考圖6所討論的,可以通過提 供放大器來消除該觸摸的歧義。在各實施例中,可以通過提供向用戶呈現選項的附加用戶 界面來消除觸摸的歧義。在又一實施例中,可以通過使用諸如加亮或發(fā)光效果等視覺效果 以突出顯示點擊目標來消除觸摸的歧義。在其他實施例中,可以使用上述消歧技術的各種 組合。在又一些實施例中,可以通過任何其他可用技術來消除觸摸的歧義。放大器可以顯示與在預定點擊區(qū)域內找到的兩個點擊目標位置相對應的兩個點 擊目標的放大表示。因此,用戶能夠更準確地觸摸所需點擊目標,此時用戶的觸摸可以與正 確的點擊目標相關聯。在各實施例中,放大器可以提供所定位的所有點擊目標的放大視圖。 在又一些實施例中,放大器可以只提供所定位的點擊目標中的某一些的放大視圖。現在轉向圖4,示出了例示根據本發(fā)明的一實施例的用于搜索預定點擊區(qū)域內的 點擊目標位置的示例性算法400的流程圖。顯而易見的是,圖4中示出的示例性算法可被 用來執(zhí)行方法300的各個步驟,如步驟330-390,但可以理解,這些步驟的順序可以不與圖3 所示的順序等同。在其他實施例中,諸如圖4中示出的示例性算法等算法可以獨立于諸如方法300等方法來使用。這樣的變型可出于各種原因來使用,如用于計算效率或用于更直 接的編程。諸如圖4中示出的步驟的順序等變型處于本發(fā)明的范圍內。在圖4中示出的示例性實施例中,預定點擊區(qū)域由一組測試位置{T(l), T (2), ...,T(N)}來定義,其中N是測試位置的數量。另外,為清楚起見,術語“點擊目標 位置”在圖4中縮寫成“CTL”。點擊區(qū)域的定義以及N的值的選擇可以由應用程序、由操 作系統(tǒng)、由系統(tǒng)管理員、或由能夠查明觸摸屏上的點擊目標的位置的任何其他實體來作出。 例如,在一個實施例中,選擇N以便建立足夠的測試位置來有效地搜索區(qū)域而同時維持計 算效率。如本領域技術人員將容易明白的,預定點擊區(qū)域的定義以及N的值的選擇可以基 于任何數量的因素,如屏幕布局的性質、點擊目標的位置、點擊目標與其他點擊目標的鄰近 度、在其上實現本發(fā)明的設備、提供點擊目標的應用程序的性質、用戶的性質,等等。此外, 本領域技術人員容易明白,可以用各種方式來修改算法400,如通過以另一方式定義預定點 擊區(qū)域或以不同次序執(zhí)行各個步驟。如圖4所示,示例性算法400的第一步驟401是確定觸摸是否是在與點擊目標相 對應的位置處作出的,即觸摸位置是否也是點擊目標位置。如果觸摸位置是點擊目標位置, 則該算法進行至步驟402,在那里點擊目標位置計數加1。如在步驟402所示,點擊目標位 置計數可包括可用于跟蹤在預定點擊區(qū)域中找到的點擊目標位置的計數的任何編程機制 或技術。本領域技術人員將理解,存在多種這樣的技術。在一實施例中,如圖4所示,例如, 一種這樣的技術包括定義變量COUNT (計數)、最初將COUNT設成等于0、并且當在預定點擊 區(qū)域中每次找到點擊目標位置時將COUNT的值加1。因此,在步驟401,COUNT的值是0,并 且在步驟402,COUNT的值加1,從而將該值設成1。在增加了 COUNT的值之后,該算法繼續(xù) 至步驟403。如圖4所示,容易理解,如果觸摸位置不是點擊目標,則跳過步驟402并且該算 法直接進行至步驟403。在步驟403,檢查第一測試位置T(I)以確定T(I)是否與點擊目標相對應,即T(1) 是否是點擊目標位置。第一測試位置T(I)可以基于任何數量的因素和優(yōu)化來選擇,并且可 以位于相對于觸摸位置的任何數量的不同方向上。在一實施例中,例如,T(I)可以位于觸 摸位置上方一個或多個像素處。在另一實施例中,T(I)可以位于觸摸位置下方一個或多個 像素處。在又一些實施例中,T(I)可以位于觸摸位置的右側或左側。在又一些實施例中, T(I)可以位于自觸摸位置的對角方向上。觸摸位置與T(I)之間的方向和距離(例如,像素 數)可以自動地或手動地選擇,并且可以基于顯示器、應用程序、或適當的硬件或軟件的任 何其他組件的特性和屬性來確定。如本領域技術人員將明白的,附加測試位置中的任一個 或全部可以位于任何數量的各種位置處以及任何數量的各種配置中,其細節(jié)不旨在受本文 的實施例的描述的限制。如在步驟404所示,如果T (1)是點擊目標位置,則COUNT的值加1并且該算法繼 續(xù)至步驟405。同樣,可以理解,如圖4所示,如果T(I)不是點擊目標位置,則該算法將跳過 步驟404并且直接從步驟403移至步驟405。在步驟405,檢查第二測試位置T (2)以確定 T (2)是否是點擊目標位置。第二測試位置T(2)可以位于觸摸屏上的任何位置。在一個實施例中,如果T(I)處 于觸摸位置上方,則Τ(2)可以是該觸摸位置下方一個或多個像素。在另一實施例中,Τ(2) 可以定向到觸摸位置的右側或左側或T(I)的右側或左側。在又一實施例中,Τ(2)可以位于T(I)上方。在又一些實施例中,T(2)可以位于定向在相對于T(I)或觸摸位置的對角線 方向的某一點處。在本發(fā)明的各實施例中,Τ(2)的位置可以基于在選擇T(I)的位置時考 慮的相同準則。如在步驟406所示,如果Τ(2)是點擊目標位置,則如以上參考步驟404所述, COUNT的值加1并且該算法隨后進行至步驟407。同樣,如果T(2)不與點擊目標位置相對 應,則將跳過步驟406并且該算法將直接進行至步驟407。如上所述,可以選擇并檢查任何 數量(例如N)的連續(xù)測試位置??梢岳斫猓鶕景l(fā)明的各實施例,置于步驟405和407 之間的虛線箭頭指示可以檢查一個或多個附加測試位置。然而,為提供對算法400的清楚 理解,本文將只討論最后測試位置T(N),但這一討論不旨在限制本領域技術人員相對于本 發(fā)明的各實現可用的各個參數和選項。例如,在一個實施例中,點擊區(qū)域可以只具有兩個測 試位置,即N = 2。在其他實施例中,點擊區(qū)域可具有任何數量的其他測試位置。在步驟407,如圖4所示,檢查測試位置T (N)以確定其是否是點擊目標位置。如果 T(N)是點擊目標位置,則在步驟408,COUNT的值加1。如圖所示,該算法繼續(xù)至步驟409。 如上所述,如果T (N)不是點擊目標位置,則跳過步驟408并且該算法直接進行至步驟409。在步驟409,檢查COUNT的值以確定該值是否是0。COUNT值是0指示測試位置中 沒有一個是點擊目標位置,即在T(l),T⑵,...,T(N)所定義的預定點擊區(qū)域內未找到點 擊目標位置。因此,在步驟410,如果COUNT的值是0,則將觸摸與觸摸位置相關聯并且不觸 發(fā)點擊事件。這一結果例如在用戶不打算觸摸點擊目標的情況下是有用的。例如,用戶可 以點擊應用程序窗口的空白部分以將焦點移至該窗口。如果COUNT的值不是0,則該算法進 行至步驟411。在步驟411,作出COUNT的值是否大于1的判定。COUNT大于1指示在預定點擊區(qū) 域內找到了超過一個點擊目標位置。如果COUNT的值大于1,則如在步驟412所示,如以上 參考圖2和3所述,消除點擊區(qū)域的歧義。如果COUNT的值不大于1,即COUNT的值等于1, 則該算法進行至步驟413。COUNT等于1指示在預定點擊區(qū)域內只找到了一個點擊目標位 置。如在步驟413所示,如果COUNT的值等于1,則將觸摸與第一點擊目標位置(S卩,所標識 的那一個點擊目標位置)相關聯。簡要轉向圖5,示出了根據本發(fā)明的一實施例的例示算法400的示例性實現的示 意圖。本領域技術人員將顯而易見的是,圖5中示出的實施例表示許多可能實施例之一,并 且不旨在限制本發(fā)明的范圍。觸摸由箭頭(即光標)501的圖示來指示,并且在該示例中,點 擊目標502被示為“0K”按鈕。當在觸摸位置503處檢測到觸摸501時,作出觸摸位置503 不與點擊目標502相對應的判定。因此,檢查位于觸摸位置503正上方的第一測試位置504 以確定第一測試位置504是否與點擊目標502相對應。雖然未在圖5的示例性實施例中示 出,但在本發(fā)明的各種其他實施例中,第一測試位置504可以位于觸摸位置503下方、觸摸 位置503的左側或右側、或者測試位置503的右側。在確定第一測試位置504不與點擊目標502相對應后,根據圖5所示的實施例,檢 查位于觸摸位置503正下方的第二測試位置505以確定第二測試位置505是否與點擊目標 502相對應。與第一測試位置504 —樣,在圖5未示出的各實施例中,第二測試位置可以位 于觸摸位置503上方、第一測試位置504上方、或這兩位置中的任一位置的右側或左側。根 據本發(fā)明,構想了任何這些位置或其組合。
在一個實施例中,每一連續(xù)測試位置的位置可以由用戶、由系統(tǒng)、由系統(tǒng)管理員、 由應用程序、或由計算機程序員來確定,并可包括被設計成檢查連續(xù)測試位置的任何模式 或算法。例如,在一個實施例中,連續(xù)測試位置可以位于沿從觸摸位置503向外延伸的螺旋 形狀的各個點處。在其他實施例中,連續(xù)測試位置可被安排在對角線上。構想了任何其他 模式或設計處于本發(fā)明的范圍內。類似地,檢查第三測試位置506、第四測試位置507、以及第五測試位置508,其中 如圖5所示,確定第五測試位置508與點擊目標502相對應。如可理解的,本發(fā)明的各實施例提供用于通過檢測觸摸,并且在該觸摸相關于觸 摸屏上顯示的一個或多個點擊目標而言有歧義的情況下將該觸摸解釋成與附近的第一點 擊目標相關聯,來解釋來自觸摸屏的輸入事件的方法。本發(fā)明的其他實施例通過顯示放大 預定點擊區(qū)域的放大器來提供對觸摸的消歧。本發(fā)明的又一些實施例提供用于將觸摸解釋 成點擊事件的系統(tǒng)和計算設備。根據各實施例,可以使用可訪問性調用以標識并解釋給定用戶界面的點擊目標和 其他方面來在計算環(huán)境內實現本發(fā)明。如本領域技術人員將容易明白的,可訪問性調用可 通過諸如例如可訪問性程序等代碼來調用。在這樣的實現中,不必重寫應用程序以與本發(fā) 明的各實施例的實現相兼容。在本發(fā)明的又一些實施例中,本文描述的方法可以在特定應 用程序或系統(tǒng)內實現,或以本領域技術人員已知的任何其他方式來實現。在本發(fā)明的一些實施例中,本文描述的系統(tǒng)和方法可以同時使用其他消歧技術來 實現。在其他實施例中,本發(fā)明可以在多觸摸觸摸屏系統(tǒng)中實現。本發(fā)明的各種其他實施 例提供對諸如指示筆等工具在觸摸屏上的觸摸的解釋。參考各具體實施例描述了本發(fā)明,各具體實施例在所有方面都旨在是說明性的而 非限制性的。不偏離本發(fā)明范圍的情況下,各替換實施例對于本發(fā)明所屬領域的技術人員 將變得顯而易見。從前面的描述可以看出,本發(fā)明很好地適用于實現上文所闡述的目的和目標,并 且具有對于該系統(tǒng)和方法是顯而易見且固有的其他優(yōu)點。也可理解特定的特征和子組合是 有用的,并且可以加以利用而無需參考其他特征和子組合。這由權利要求所構想的,并在權 利要求的范圍內。
權利要求
一個或多個其上包括機器可使用指令的計算機可讀介質,所述機器可使用指令用于執(zhí)行一種解釋與觸摸屏顯示器上的一個或多個點擊目標相關的有歧義的點擊事件的方法,所述方法包括在顯示屏顯示器上顯示一個或多個點擊目標(310),其中所述點擊目標被顯示在相應點擊目標位置處;檢測第一觸摸屏位置處的觸摸(320);搜索所述第一觸摸屏位置的預定點擊區(qū)域內的所述點擊目標位置中的第一個(330);在定位了所述預定點擊區(qū)域內的所述點擊目標位置中的第一個后,搜索所述預定點擊區(qū)域內的所述點擊目標位置中的第二個(360);以及如果沒有定位所述預定點擊區(qū)域內的所述點擊目標位置中的第二個,則將所述觸摸與同所述點擊目標位置中的第一個相對應的第一點擊目標進行關聯(380)。
2.如權利要求1所述的一個或多個計算機可讀介質,其特征在于,在定位了所述預定 點擊區(qū)域內的所述點擊目標位置中的第二個之后,還包括提供放大器,其中所述放大器包 括具有所述預定點擊區(qū)域的放大視圖的用戶界面。
3.如權利要求1所述的一個或多個計算機可讀介質,其特征在于,所述觸摸包括與所 述觸摸屏進行接觸的用戶手指。
4.如權利要求1所述的一個或多個計算機可讀介質,其特征在于,所述觸摸包括與所 述觸摸屏進行接觸的指示筆。
5.如權利要求1所述的一個或多個計算機可讀介質,其特征在于,搜索所述點擊目標 位置中的第一個包括確定所述第一觸摸屏位置是否是點擊目標位置;以及如果所述第一觸摸屏位置不是點擊目標位置,則搜索所述第一觸摸屏位置上方的一個 或多個像素。
6.如權利要求5所述的一個或多個計算機可讀介質,其特征在于,如果在所述第一觸 摸屏位置上方的一個或多個像素處未找到點擊目標,則搜索所述第一觸摸屏位置下方的一 個或多個像素。
7.如權利要求1所述的一個或多個計算機可讀介質,其特征在于,如果沒有在所述點 擊區(qū)域內定位點擊目標,則確定所述觸摸不應與點擊目標相關聯。
8.一種便于相對于觸摸屏顯示器來準確地確定觸摸輸入的目標的計算設備,包括顯示與應用程序相關聯的一個或多個點擊目標的顯示組件(215),其中所述一個或多 個點擊目標中的每一個與點擊目標位置相對應;對觸摸屏顯示器上的觸摸進行傳感的觸摸檢測組件(210),其中所述觸摸與第一觸摸 屏位置相對應;搜索與所述第一觸摸位置相關聯的預定點擊區(qū)域內的一個或多個點擊目標的目標確 定組件(220);以及在所述預定點擊區(qū)域內找到了超過一個點擊目標的情況下提供所述預定點擊區(qū)域的 放大視圖的消歧組件(230)。
9.如權利要求8所述的計算設備,其特征在于,所述觸摸包括與不是點擊目標位置的 第一觸摸屏位置相關聯的有歧義的觸摸。
10.如權利要求8所述的計算設備,其特征在于,所述觸摸包括與作為至少兩個點擊目 標位置之一的第一觸摸屏位置相關聯的有歧義的觸摸,其中所述至少兩個點擊目標位置位 于所述預定點擊區(qū)域內。
11.如權利要求8所述的計算設備,其特征在于,所述目標確定組件通過查詢所述應用 程序來搜索預定點擊區(qū)域內的一個或多個點擊目標。
12.如權利要求11所述的計算設備,其特征在于,查詢所述應用程序包括使用可訪問 性框架來確定位于所述預定點擊區(qū)域內的一個或多個對象是否是點擊目標。
13.如權利要求8所述的計算設備,其特征在于,所述預定點擊區(qū)域包括所述觸摸屏的 其中具有預定數量的測試位置的區(qū)域。
14.如權利要求8所述的計算設備,其特征在于,所述點擊區(qū)域包括所述觸摸屏的具有 基于所述觸摸屏顯示器的特性和生成所述點擊目標的應用程序的特性來選擇的邊界的區(qū) 域。
15.如權利要求8所述的計算設備,其特征在于,如果在所述預定點擊區(qū)域內只找到一 個點擊目標,則所述消歧組件將所述點擊目標與所述觸摸相關聯。
16.一種用于解釋和與一應用程序相關聯的一個或多個點擊目標有關的觸摸的方法, 其中所述點擊目標顯示在觸摸屏顯示器上,所述方法包括檢測第一觸摸屏位置處的觸摸(320);查詢所述應用程序以確定位于所述第一觸摸屏位置的預定點擊區(qū)域內的第一點擊目 標(401);在確定位于所述預定區(qū)域內的第一點擊目標后,查詢所述應用程序以確定第二點擊目 標是否位于所述預定點擊區(qū)域內(403);以及在確定第二點擊目標位于所述預定點擊區(qū)域內后,顯示所述預定點擊區(qū)域的放大視圖 (600)。
17.如權利要求16所述的方法,其特征在于,所述預定點擊區(qū)域包括所述觸摸屏的其 中具有預定數量的測試位置的區(qū)域。
18.如權利要求17所述的方法,其特征在于,確定第一點擊目標包括確定第一觸摸屏位置是否是點擊目標位置,其中點擊目標位置是所述觸摸屏顯示器上 的與點擊目標相對應的位置;如果否,則確定第一測試位置是否是點擊目標位置,其中所述第一測試位置位于所述 第一觸摸屏位置上方一個或多個像素處;如果否,則確定第二測試位置是否是點擊目標位置,其中所述第二測試位置位于所述 第一觸摸屏位置下方一個或多個像素處;以及如果否,則確定第三測試位置是否是點擊目標位置,其中所述第三測試位置位于所述 第一測試位置上方一個或多個像素處。
19.如權利要求18所述的方法,其特征在于,還包括確定所述測試區(qū)域內的預定數量 的測試位置中的任一個是否是點擊目標位置,其中如果確定所述點擊區(qū)域中的預定數量的 測試位置中沒有一個是點擊目標位置,則確定所述觸摸不應與點擊目標相關聯。
20.如權利要求17所述的方法,其特征在于,在所選時間量之后,如果所述點擊區(qū)域中 沒有一個測試位置被確定為點擊目標位置,則確定所述觸摸不應與點擊目標相關聯。
全文摘要
一種用于解釋與觸摸屏顯示器上的布置在相應點擊目標位置處的點擊目標相關的有歧義的點擊事件的方法,該方法包括檢測觸摸位置處的觸摸并確定該觸摸位置是否與點擊目標位置相對應。該方法還包括搜索預定點擊區(qū)域中的鄰近點擊目標位置,并且在定位了該預定點擊區(qū)域內的第一點擊目標位置后,將該觸摸與該第一點擊目標位置進行關聯以標識點擊事件。一種用于便于相對于觸摸屏顯示器來準確地確定觸摸輸入的目標的計算設備,該計算設備包括顯示組件;觸摸檢測組件;將觸摸與點擊目標進行關聯的目標確定組件;以及將該觸摸與右擊事件、左擊事件、或拖曳事件之一進行關聯的事件檢測組件。
文檔編號G06F3/041GK101971127SQ200980108885
公開日2011年2月9日 申請日期2009年2月16日 優(yōu)先權日2008年3月11日
發(fā)明者C·德瓦拉杰, D·A·佩里, D·A·馬修斯, L·B·基利, R·J·鄧肯, S·P·德格, T·H·阿爾菲恩 申請人:微軟公司