專利名稱:用于觸敏輸入設備的基于模式的圖形用戶接口的制作方法
技術領域:
本發明通常涉及與觸敏設備相關的手勢表示。
背景技術:
現今存在許多種類型的輸入設備用于執行計算機系統中的操作。操作通常對應于在顯示屏幕上移動光標并作出選擇。操作也可能包括翻頁、滾動、掃視、縮放等等。舉例來說,輸入設備可包括按鈕、開關、鍵盤、鼠標、跟蹤球、觸摸板、控制桿、觸摸屏等等。在設計計算機系統時都考慮了每一種這些設備的優點和缺點。
按鈕和開關通常在本質上是機械的并提供有關光標移動和作選擇的有限的控制。例如,它們通常專用于在特定方向上(例如,箭頭鍵)移動光標或用于做特定的選擇(例如,輸入、刪除、數量等)。
在鼠標方面,輸入指示器的移動對應于當用戶沿著一個表面移動鼠標時鼠標的相對移動。在跟蹤球方面,輸入指示器的移動對應于當用戶在外殼內移動球時球的相對移動。鼠標和跟蹤球還包括一個或多個按鈕用于作出選擇。鼠標還可以包括滾動輪,其允許用戶通過簡單地向前或向后滾動該輪移動穿過GUI。
利用觸摸板,輸入指示器的移動對應于當用戶的手指沿觸摸板的表面移動時用戶的手指(或指示筆)的相對移動。另一方面,觸摸屏是一種具有覆蓋有屏幕的觸敏透明面板的顯示屏幕類型。當使用觸摸屏時,用戶通過直接指向屏幕上的GUI對象(通常使用指示筆或手指)在顯示屏幕上作選擇。
為了提供附加的功能,已經使用這些輸入設備的某些實現了手勢。舉例來說,在觸摸板中,當在觸摸板的表面上檢測到一次或多次輕敲時可作出選擇。在某些情況下,可以輕敲觸摸板的任何部分,而在另一種情況下可以輕敲觸摸板的指定部分。除了用于選擇,可通過利用觸摸板的邊界處的手指運動啟動滾動。
轉讓給蘋果計算機公司的U.S專利5,612,719和5,590,219描述了手勢表示的一些其它用法。U.S專利5,612,719公開了一種對在屏幕上或在按鈕附近作出的至少兩種不同的按鈕手勢敏感的屏幕上的按鈕。U.S專利5,590,219公開了一種用于識別計算機系統的顯示屏幕上的橢圓型手勢輸入的方法。
近期,已經實現了更加高級的手勢。例如,通過將四個手指放在觸摸板以便識別滾動手勢可以啟動滾動并據此在觸摸板上移動這些手指以執行滾動事件。然而,用于實現這些高級的手勢的方法有幾個缺點。舉例來說,一旦設置了手勢,則直到用戶重置該手勢狀態其不能被改變。例如,以觸摸板為例,如果四個手持等于滾動,并且用戶在4個手指被識別之后放下拇指,則直到從觸摸板抬起整只手并再次放下(例如,重置),將不會執行任何與包括四個手指和拇指的新的手勢有關的動作。簡單地說,用戶不能在中途改變手勢狀態。同理,在任何給定的時刻僅可能執行一個手勢。也就是說,不能夠同時執行多個手勢。
基于上述內容,存在改進在觸敏設備上執行手勢的方式的需求。
發明內容
本發明有關手勢以及使用觸敏設備實現手勢的方法。觸敏設備的例子包括觸摸屏和觸摸板。本發明還有關用戶接口以及使用顯示屏實現用戶接口的方法。
本發明可以以多種方式實現,包括實現為方法、圖形用戶接口、計算設備、或者計算機可讀介質。下面討論本發明的幾個實施例。
在一個實施例中,本發明有關一種用戶接口方法。該方法包括檢測觸擊。該方法還包括當檢測到觸擊時確定用戶接口模式。該方法進一步包括基于該用戶接口模式并且響應于所述檢測到的觸擊,激活一個或多個GUI元素。
在一個實施例中,本發明有關一種用戶接口方法。該方法包括顯示一組媒體項。該方法還包括檢測所顯示的該組媒體項之上的觸擊。該方法進一步包括當在所顯示的媒體項之上檢測到觸擊時激活一個虛擬滾動輪。該虛擬滾動輪的激活包括顯示并啟用該虛擬滾動輪的功能,該虛擬滾動輪提供一個觸擊區域,在該區域用戶旋轉他們的手指以便穿過該組媒體項。該方法另外包括確定是否相對于該虛擬滾動輪的觸擊區域執行了觸擊事件。此外,該方法包括當執行了滾輪觸擊事件時滾動穿過該組媒體項。
在一個實施例中,本發明有關一種在用戶操作的具有顯示屏和觸摸屏的電子設備上執行的方法。該方法包括確定是否檢測到觸擊。該方法還包括當檢測到觸擊時監視和分析當前操作條件。該方法還包括針對第一組操作條件激活第一GUI元素。該方法另外包括針對第二組操作條件激活第二GUI元素。
在一個實施例中,本發明有關一種在具有顯示屏和觸摸感應輸入設備的計算設備上執行的方法。該方法包括感應觸擊。該方法還包括當檢測到觸擊時顯示和啟用一個GUI元素。該GUI元素基于以下條件的至少一個(a)設備該計算設備上當前運行的應用;(b)該應用的當前狀態;和/或(c)該觸擊的一個或多個特性。該特性包括例如觸擊位置、觸擊ID、觸擊次數、以及觸擊運動。該方法進一步包括當其中一個以下事件發生時從顯示屏禁止并移除該GUI元素(a)沒有再檢測到觸擊,(b)在預置時間內沒有檢測到觸擊,(c)自從顯示和啟用步驟之后已過去了一段時間,(d)用戶選擇。
在另一個實施例中,本發明有關一種計算系統。該計算系統包括配置用于顯示圖形用戶界面的顯示設備。該線條還包括放置在該顯示設備之上的觸摸屏。該觸摸屏配置用于檢測在該顯示設備之上發生的觸擊。該系統進一步包括可操作地連接到該顯示設備和觸摸屏的處理器。該處理器響應于觸擊指示該顯示設備顯示一個或多個GUI元素,并且當檢測到相對于該顯示的GUI元素的觸擊事件時執行與該GUI元素相關的動作。
在另一個實施例中,本發明有關一種計算系統。該計算系統包括處理器。該計算設備還包括能夠感應觸擊事件的觸摸屏。該計算設備進一步包括配置用于同時顯示多個媒體項和虛擬滾動輪的顯示屏。該虛擬滾動輪提供一個區域,在該區域觸擊事件被執行以便實現滾動動作。該滾動動作允許用戶穿過該多個媒體項。
根據下面以本發明的原理實例示意的詳細描述連同附圖,本發明的其它方面和優點將變得明顯。
根據以下連同附圖的詳細描述將易于理解本發明,其中同樣的參考數字指示同樣的結構元素,并且其中圖1是根據本發明的一個實施例的計算機系統的框圖;圖2是根據本發明的一個實施例的多點處理方法;圖3A和B舉例說明了根據本發明的一個實施例的圖像;圖4舉例說明了根據本發明的一個實施例的特征組;圖5是根據本發明的一個實施例的參數計算方法;圖6A-6G舉例說明了根據本發明的一個實施例的旋轉手勢;圖7是根據本發明的一個實施例的基于觸擊的方法的框圖;圖8是根據本發明的一個實施例的基于觸擊的方法的框圖;圖9是根據本發明的一個實施例的基于觸擊的方法的框圖;圖10是根據本發明的一個實施例的縮放手勢方法的框圖;圖11A-11H舉例說明了根據本發明的一個實施例的縮放時序;圖12是根據本發明的一個實施例的掃視方法的框圖;圖13A-13D舉例說明了根據本發明的一個實施例的掃視時序;圖14是根據本發明的一個實施例的旋轉方法的框圖;圖15A-15C舉例說明了根據本發明的一個實施例的旋轉時序;圖16是根據本發明的一個實施例的GUI操作方法的框圖;圖17A-17E舉例說明了根據本發明的一個實施例的浮動控制時序;
圖18是根據本發明的一個實施例的GUI操作方法的框圖;圖19A-19D舉例說明了根據本發明的一個實施例的縮放目標時序;圖20是根據本發明的一個實施例的GUI操作方法的框圖;圖21A-21D舉例說明了根據本發明的一個實施例的頁面翻轉時序;圖22是根據本發明的一個實施例的GUI操作方法的框圖;圖23A-23D舉例說明了根據本發明的一個實施例的慣性時序;圖24是根據本發明的一個實施例的GUI操作方法的框圖;圖25A-25D舉例說明了根據本發明的一個實施例的鍵盤時序;圖26是根據本發明的一個實施例的GUI操作方法的框圖;圖27A-27D舉例說明了根據本發明的一個實施例的滾動輪時序;圖28是根據本發明的一個實施例的用戶接口方法;圖29A-29D舉例說明了根據本發明的一個實施例的過渡效果;圖30A-30D舉例說明了根據本發明的另一個實施例的過渡效果;圖31A-31D舉例說明了根據本發明的另一個實施例的過渡效果;圖32是根據本發明的一個實施例的確定方法;圖33是根據本發明的一個實施例的用戶接口方法;圖34A-34F舉例說明了根據本發明的一個實施例與圖33所示的方法相關的時序;圖35A-35F舉例說明了根據本發明的一個實施例與圖33所示的方法相關的時序;圖36A-36C舉例說明了根據本發明的一個實施例的用戶接口時序;圖37是根據本發明的一個實施例的用戶接口方法;圖38A-38J舉例說明了根據本發明的一個實施例的用戶接口時序。
具體實施例方式
本發明有關手勢以及使用觸敏設備實現手勢的方法。觸敏設備的例子包括觸摸屏和觸摸板。本發明還有關用戶接口和使用顯示屏實現用戶接口的方法。本發明的一方面有關基于一個或多個條件確定用戶接口模式。本發明的另一方面有關基于該用戶接口模式激活一個或多個GUI元素(例如,顯示一個GUI元素)。本發明的另一方面有關虛擬滾動輪。
下面參考圖1-38J討論本發明的這些和其它方面。然而,本領域的技術人員將很容易理解,在此給出的有關這些手勢的詳細描述是用于解釋性目的,因為本發明延伸到這些有限的實施例之外。
圖1是根據本發明的一個實施例的示例性計算機系統50的框圖。計算機系統50可對應于個人計算機系統,諸如桌面型、膝上型、平板或手持計算機。計算機系統還可對應于諸如蜂窩電話、PDA、專用媒體播放器、消費類電子設備等等的計算設備。
圖1所示的示例性計算機系統50包括配置用于執行指令并完成與計算機系統50相關的操作的處理器56。例如,利用例如從存儲器獲取的指令,處理器56可以控制計算機系統50的各組件之間輸入和輸出數據的接收和操縱。處理器56可以在單芯片、多芯片或多個電子元件上實現。例如,多種體系結構可被用于處理器56,包括專用或嵌入式處理器、專用處理器、控制器、ASIC等等。
在多數情況下,處理器56與操作系統一起操作以執行計算機代碼并產生和使用數據。操作系統是眾所周知的并將不再更加詳細地描述。舉例來說,操作系統可對應于OS/2、DOS、Unix、Linux、PalmOS等等。操作系統也可以是專用操作系統,如可能會用于有限用途的應用型計算設備。操作系統、其它計算機代碼和數據可駐留在存儲塊58中,存儲塊58可操作地連接到處理器56。存儲塊58通常提供存儲由計算機系統50使用的計算機代碼和數據的地方。舉例來說,存儲塊58可包括只讀存儲器(ROM)、隨機存取存儲器(RAM)、硬盤驅動器等等。信息也可以駐留在可移動存儲介質上并在需要時加載或安裝到計算機系統50之上。可移動存儲介質包括例如CD-ROM、PC-CARD、存儲卡、軟盤、磁帶、以及網絡組件。
計算機系統50還包括可操作地連接到處理器56的顯示設備68。顯示設備68可以是液晶顯示器(LCD)(例如,有源矩陣,無源矩陣等)。或者,顯示設備68可以是諸如單色顯示器、彩色圖形適配器(CGA)顯示器、增強型圖形適配器(EGA)顯示器、可變圖形陣列(VGA)顯示器、超級VGA顯示器、陰極射線管(CRT)等等。顯示設備也可對應于等離子體顯示器或以電子墨水實現的顯示器。
顯示設備68通常配置用于圖形用戶接口(GUI)69,GUI 69在計算機系統的用戶和在其上運行的操作系統或應用之間提供一個易于使用的用戶接口。一般來說,GUI 69以圖形圖像表示程序、文件和操作選項。圖形圖像可包括窗口、信息欄、對話框、菜單、圖標、按鈕、光標、滾動條等等。這種圖像可以以預定布局排列,或可以適應用戶所作出的特定動作動態被創建。在操作期間,用戶可以選擇并激活各種圖形圖像以便啟動與之相關的功能和任務。舉例來說,用戶可以一個按鈕以打開、關閉、最小化、或最大化一個窗口,或者選擇一個圖標以啟動特定的程序。GUI 69另外或可選地可以為用戶在顯示設備68上顯示諸如非交互式文本和圖形的信息。
計算機系統50還包括可操作地連接到處理器56的輸入設備70。輸入設備70配置用于將數據從外部世界傳送到計算機系統50中。輸入設備70可以例如用于執行跟蹤以相對于顯示屏68上的GUI 69作出選擇。輸入設備70還可用于發出計算機系統50內的命令。輸入設備70可包括配置用于接收來自用戶的觸擊的輸入的觸摸感應設備并將這個信息發送給處理器56。舉例來說,觸摸感應設備可對應于觸摸板或觸摸屏。在多數情況下,觸摸感應設備識別觸敏表面上的觸擊以及觸擊的位置和大小。觸摸感應設備將觸擊報告給處理器56,處理器56根據其的程序設計解釋該觸擊。例如,處理器56可根據一個特定的觸擊啟動一個任務。可使用專用處理器用于本地處理觸擊并減少對計算機系統的主處理器的需求。觸摸感應設備可以基于各種感應技術,包括但不限于電容感應、電阻感應、表面聲波感應、壓力感應、光感應等等。此外,觸摸感應設備可以基于單點感應或多點感應。單點感應能夠僅辨別單個觸擊,而多點感應能夠辨別同時發生的多個觸擊。
輸入設備70可以是放置在顯示屏68之上或之前的觸摸屏。觸摸屏70可以與顯示設備68集成在一起或者可以是單獨的部件。觸摸屏70相比諸如觸摸板、鼠標等的輸入技術有幾個優點。其一,觸摸屏70位于顯示屏68的前面并由此用戶能夠直接操縱GUI 69。例如,用戶可以簡單地將手指放到想要控制的對象的上面。在觸摸板內,沒有諸如此類的一對一關系。就觸摸板來說,觸摸板典型地放置在遠離顯示屏的不同的平面。例如,顯示屏典型地位于垂直屏幕而觸摸板典型地位于水平平面。這使得其的使用不是很直觀,并由此當與觸摸屏相比時更加難于使用。除了觸摸屏之外,輸入設備70可以是多點輸入設備。由于它們能夠識別一個以上的對象(手持)多點輸入設備比傳統的單點設備更具優勢。單點設備不能識別多個對象。舉例來說,在在此結合作為參考的待審并共同轉讓的美國專利申請No.10/840,862中更加詳細地示意和描述了在此可使用的多點觸摸屏。
計算機系統50還包括連接到一個或多個I/O設備80的能力。舉例來說,I/O設備80可對應于鍵盤、打印機、掃描儀、照像機、揚聲器等等。I/O設備80可以與計算機系統50集成在一起或者它們可以是單獨的部件(例如,外圍設備)。在某些情況下,I/O設備80可以通過有線連接(例如電纜/端口)連接到計算機系統50。在其它情況下,I/O設備80可以通過無線連接連接到計算機系統50。舉例來說,數據鏈路可對應于PS/2、USB、IR、RF、藍牙等等。
根據本發明的一個實施例,計算機系統50被設計用于識別應用到輸入設備70的手勢85并基于手勢85控制計算機系統50的各方面。在某些情況下,手勢被定義為映射到一個或多個特定計算操作的仿效的與輸入設備的交互。可以通過不同的手并且尤其是手持運動更加做出手勢85。可選或另外地,可以使用指示筆作出手勢。在所有的這些情形中,輸入設備70接收手勢85而處理器56執行指令以完成與手勢85相關的操作。此外,存儲塊58可包含手勢運算程序88,其可以是操作系統的一部分或者是單獨的應用程序。手勢運算程序88通常包含一組指令,其識別手勢85的發生并通知手勢85的軟件代理和/或響應于手勢85采取什么行動。
當用戶執行了一個或多個手勢,輸入設備70將手勢信息中繼到處理器56。利用來自存儲器58,或者更特別地手勢運算程序88的指令,處理器56解釋手勢85并基于手勢85控制計算機系統50的不同組件,如存儲器58、顯示屏68以及I/O設備80。手勢85可以被識別為用于執行存儲在存儲器58中的應用中的動作的命令,修改在顯示屏68上顯示的GUI對象,修改存儲在存儲器58中的數據,和/或用于執行I/O設備80中的動作。舉例來說,命令可以是與縮放、掃視、滾動、翻頁、旋轉、大小調整等有關。作為更進一步的例子,該命令還可以與啟動特定程序、打開文件或文檔、查看菜單、作出選擇、執行指令、登錄到計算機系統、允許授權個人對計算機系統的限制區域的訪問、加載與用戶的計算機桌面的排列喜好有關的用戶簡表文件等等有關。
可以利用范圍廣泛的不同手勢。舉例來說,手勢可以是單點或多點手勢;靜態的或動態的手勢;連續或分段的手勢;等等。單點手勢是那些利用單個接觸點執行的手勢,例如,使用例如來自單個手指、手掌或指示筆的單個觸擊執行的手勢。多點手勢是能夠使用多點執行的那些手勢,例如,利用多個觸擊執行的手勢,例如來自多個手指、手指和手掌、手指和指示筆、多觸指和/或它們的任何組合的多個觸擊。靜態手勢是不包含運動的那些手勢,而動態手勢是包含有運動的那些手勢。連續的手勢是在單次觸擊內執行的那些手勢,而分段手勢是在各別步驟或敲擊順序內執行的那些手勢。
在一個實施例中,計算機系統50配置用于同時注冊多個手勢,即可同時執行多個手勢。舉例來說,在旋轉手勢的同時可以執行縮放手勢,或在掃視手勢的同時可以執行旋轉手勢。在一個具體實現中,縮放、旋轉和掃視手勢可全部同時發生以便同時執行縮放、旋轉和掃視。
在另一個實施例中,系統被配置用于立即識別手勢因此可以在該手勢,即同時并列發生的手勢和動作的同時實現與該手勢相關聯的動作,而不會是一個兩步驟的過程。舉例來說,在滾動手勢期間,屏幕隨手指的運動而移動。
在另一個實施例中,在顯示屏68上呈現的對象連續跟隨在觸摸屏上發生的手勢。在該被執行的手勢和在顯示屏68上顯示的對象之間存在一對一的關系。例如,當手勢被執行時,位于該手勢下面的對象同時發生改變。例如,在縮放手勢期間,手指可舒展開或靠近以便使顯示屏68上顯示的對象在舒展開的期間放大而在靠近的期間縮小。在這個操作期間,計算機系統50識別用戶輸入為縮放手勢,確定該采取什么行動,并輸出控制數據到適當的設備,在本實例中為顯示屏68。
在另一個實施例中,計算機系統50提供區域敏感性,其中當在輸入設備68的不同區域之上實現時手勢意味著不同的事情。例如,音量旋紐之上的旋轉手勢引起音量增大/降低,而照片上的旋轉手勢促使照片旋轉。
在另一個實施例中,與觸摸屏接觸的手指的數量可指示一個輸入模式。例如,單個手指的單次觸擊可指示想要執行跟蹤,即指針或光標移動,或選擇,而一組手指的多個觸擊可指示想要執行手勢表示。用于實現手勢表示的手指的數據可以是多種多樣的。舉例來說,兩個手指可指示第一手勢模式,三個手指可以指示第三手勢模式等等。或者,任何數量的手指,即多于一個的手指,都可以用于可包括一個或多個手勢控制的同一個手勢模式。手指的方向同樣可用于表示所想要的模式。可以檢測手指輪廓以基于例如用戶是否已經使用了他的拇指或食指來允許不同的模態操作。
在另一個實施例中,當連續在輸入設備上敲擊而不停止該敲擊(例如,抬離觸敏表面)的時候可以改變輸入。在一個實施例中,用戶可以在進行敲擊的時候從跟蹤(或選擇)模式切換到手勢表示表示。例如,跟蹤或選擇可與單個手指相關聯而手勢表示可以與多個手指相關聯;因此,通過抬起并將第二個手指放到觸摸屏上面用戶可以在跟蹤/選擇和手勢表示之間來回切換。在另一個實施例中,用戶可以在進行敲擊時從一種手勢模式切換到另一種手勢模式。例如,縮放可與展開一對手指相關聯而旋轉可與旋轉該對手指相關聯;因此,通過改變他們的手指在展開和旋轉之間移動用戶可以在縮放和旋轉之間來回切換。在還一個實施例中,在進行敲擊的時候可以改變手勢輸入的數量(例如,增加或減少)。例如,在手指分散開的縮放期間,用戶可進一步旋轉他們的手指以啟動縮放和旋轉二者。此外,在縮放和旋轉期間,用戶可停止展開他們的手指以便僅發生旋轉。換句話說,手勢輸入可以是連續的輸入,或同時或連續地。
在一個特定的實施例中,單個手指啟動跟蹤(或選擇)而兩個或更多個手指以相互靠近激活滾動或掃視。通常優選兩個手指以便提供一個或兩個手指之間容易的來回切換,即,用戶可通過簡單地抬起或放下另外的手指非常容易地在模式之間切換。這具有比其它形式的切換模式更為直觀的優點。在跟蹤期間,光標的移動是由用戶在觸摸感應設備的觸敏表面上移動單個手指控制的。觸摸感應設備的傳感器設備解釋該手指運動并生成用于產生光標在顯示屏上相應的移動的信號。在滾動期間,屏幕移動是由用戶在觸摸感應設備的觸敏表面上移動兩個手指控制的。當組合的手指在垂直方向上移動,該運動被解釋為垂直滾動事件,而當該組合的手指在水平方向上移動,則該運動被解釋為水平滾動事件。也可為掃視陳述同樣的內容,盡管掃視可發生在除了僅僅是水平和垂直方向之外的所有方向上。
在此使用的術語“滾動”通常適合穿過顯示屏上的顯示區移動所顯示的數據或圖像(例如,文本或圖片)以便在該顯示區內看見新的數據集(例如,文本行或圖像)。在多數情況下,一旦顯示區被填滿,則每個新的數據集出現在該顯示區的邊緣并且所有其它的數據集騰出一個空位。也就是說,由于每個移出顯示區的數據集顯示該新的數據集。本質上,滾動功能允許用戶查看當前位于顯示區之外的連續的數據集。顯示區可以是顯示屏的整個顯示區域或其僅僅是顯示屏的一部分(例如,窗體)。
如上所提及,可以實現垂直(上或下)或水平(左或右)滾動。在垂直滾動的情況下,當用戶向下滾動時,每個新的數據集出現在顯示區的底部而所有其它的數據集向上移動一個位置。如果顯示區被填滿,則頂部的數據集移出顯示區。同樣地,當用戶向上滾動時,每個新的數據集出現在顯示區的頂部而所有其它的數據集向下移動一個位置。如果顯示區被填滿,則底部的數據集移出顯示區。
舉例來說,在操作期間,顯示屏可以顯示媒體項(例如,歌曲)列表。通過移動她或他的手指越過觸摸屏用戶能夠線性地滾動穿過該媒體項列表。當手指移動越過觸摸屏時,自媒體項列表所顯示的項目被改變以便用戶能夠有效滾動穿過該媒體項列表。在多數情況下,用戶通過以更快的速度移動他或她的手指能夠加速他們的媒體項列表的遍歷。下面更加詳細地描述可能與上述例子有關的一些實施例。參見例如圖6、23、27。
圖2是根據本發明的一個實施例的多點處理方法100。多點處理方法100可例如在圖1所示的系統中執行。多點處理方法100通常開始于塊102,在此從多點輸入設備(并且更特別地是從多點觸摸屏)讀入圖像。舉例來說,多點觸摸屏通常可對應在此結合作為參考的共同未決的美國專利申請No.10/840,862中公開的多點觸摸屏。盡管使用了術語“圖像”應當注意數據可來自其它形式。在多數情況下,讀自觸摸屏的圖像提供幅度(Z)作為觸摸屏的每個感應點或像素的位置(x和y)的函數。該幅度可以例如反映在每個點測量的電容。
在塊102之后,多點處理方法100繼續進行到塊104,在此圖像被轉換為集合或特征列表。每個特征代表清晰的輸入,如觸擊。在多數情況下,每個特征包含其自身的唯一標識符(ID)、x坐標、y坐標、Z幅度、角度θ、面積A等等。舉例來說,圖3A和3B及時示意了特定的圖像120。在圖像120中,基于兩個清晰的觸擊有兩個特征122。該觸擊可以例如由一對手指觸擊顯示屏形成。如圖所示,每個特征122都包括唯一標識符(ID)、x坐標、y坐標、Z幅度、角度θ和面積A。更特別地,第一特征122A由ID1,x1,y1,θ1,A1表示,而第二特征122B由ID2,x2,y2,θ2,A2表示。這個數據可例如利用多觸擊協議輸出。
從數據或圖像到特征的轉換可以利用在此結合作為參考的共同待審的美國專利申請No.10/840,862中描述的方法完成。如在該專利申請中所公開的,原始數據被接收。該原始數據典型地是數字化了的形式,并且包含觸摸屏每個節點的值。該值可以在0和256之間其中0相當于沒有觸壓而256相當于完全觸壓。其后,過濾原始數據以降低噪聲。一旦過濾了噪聲,生成指示所連接的點的每個組的拓撲結構的斜率數據。其后,基于該斜率數據計算每個接觸區域的邊界,即,確定哪些點被組合在一起以形成每個接觸區域。舉例來說,可能使用一個流域算法。一旦確定了邊界,就可以計算每個接觸區域的數據(例如,x,y,Z,θ,A)。
在塊104之后,多點處理方法100繼續進行到塊106,在此執行特征分類和分組。在分類期間確定每個特征的同一性。例如,特征可被分類為特定的手指,拇指、食指或其它對象。一旦分類后就可以分組特征。在其中形成分組的方式可廣泛變化。在多數情況下,特征是基于某些標準(例如,它們帶有類似的屬性)分組的。例如,可以將圖3A和3B所示的兩個特征分組到一起,因為這些特征的每一個相互位置接近或者因為它們來自同一只手。分組可以包括某種級別的過濾以便濾除不是觸擊事件的一部分的特征。在過濾中,因為它們或者符合某些預定的標準或者因為它們不符合某些標準可以拒絕一個或多個特征。舉例來說,該特征的其中之一可以被分類為位于圖形輸入板PC邊緣的拇指。因為拇指被用于拿著設備而不是用于執行任務,從其中生成的特征被拒絕,即,不認為是被處理的觸擊事件的一部分。
在塊106之后,該多點處理方法100繼續進行到塊108,在此為該特征組計算關鍵參數。關鍵參數可包括特征之間的距離、所有特征的x/y矩心、特征旋轉、分組的總壓力(例如,矩心處的壓力)等等。如圖4所示,該計算可包括查找矩心C、從矩心C畫虛線130到每個特征、定義每條虛線的距離D(D1和D2),并接著平均距離D1和D2。一旦計算了參數就報告參數值。該參數值典型地與組標識符(GID)和每個組內的特征數量(在這個情形中為3)一同報告。在多數情況下,既報告初始的也報告當前的參數值。初始參數值可以基于放下,即當用戶將他們的手指放到觸摸屏上時,而當前值可以基于在放下之后發身的敲擊內的任何點。如應當是適當的那樣,塊102-108在用戶敲擊期間被重復執行由此生成許多順序地配置的信號。該初始和當前參數可在隨后的步驟中比較以執行系統中的動作。
在塊108之后,該處理流程繼續進行到塊110,在此分組是或者與用戶接口(UI)元素有關。UI元素是按鈕框、列表、滑動塊、輪子、旋紐等。每個UI元素代表用戶接口的一個組件或控制。UI元素之后的應用具有到在塊108中計算的參數數據的入口。在一個實現中,應用歸類對應到其處的UI元素的觸擊數據的關聯性。歸類可以基于某些預定的標準。該歸類可包括產生質量因數,并且無論哪一個UI元素具有最高的質量因數,給予其唯一對該分組的訪問。甚至還可能有某種程度的磁滯現象(一旦其中一個UI元素要求了該組的控制,則該組不離開該UI元素直到另一個UI元素具有更加高的等級)。舉例來說,歸類可包括確定矩心(或特征)對與該UI元素相關的GUI對象的接近性。
在塊110之后,該多點處理方法100繼續進行到塊112和114。塊112和114可大約在同時被執行。從用戶的觀點看,在一個實施例中,塊112和114看起來是同時執行的。在塊112,基于初始和當前參數值以及它們與之關聯的UI元素之間的差異執行一個或多個動作。在塊114,提供與被執行的一個或多個動作有關的用戶反饋。舉例來說,用戶反饋可以包括顯示、音頻、觸覺反饋等等。
圖5是根據本發明的一個實施例的參數計算方法150。參數計算方法150可以例如對應于圖2所示的塊108。參數計算方法150通常開始于塊152,在此接收到一組特征。在塊152之后,參數計算方法150繼續進行到塊154,在此作出特征組內的特征數量是否改變的判斷。例如,由于用戶抬起或放下另一個手指特征的數量可能已經被改變。可能需要不同的手指以執行不同的控制(例如,跟蹤,手勢表示)。如果特征數量改變,則參數計算方法150繼續進行到塊156,在此計算初始參數值。如果特征數保持不變,參數計算方法150繼續進行到塊158,在此計算當前參數值。其后,參數計算方法150繼續進行到塊160,在此報告初始和當前參數值。舉例來說,初始參數可包含各點之間的平均初始距離(或初始距離(AVG)),而當前參數值可包含各點之間的平均當前距離(或當前距離(AVG))。可在后續的步驟內比較這些值以便控制計算機系統的各方面。
上述的方法和技術可被用于實現任何數量的GUI接口對象和動作。例如,可以創建手勢以檢測和影響一個用戶命令以調整窗口大小、滾動顯示屏、旋轉對象、放大或縮小所顯示的區域、刪除或插入文本或其它對象等等。手勢還可用于調用和操作虛擬控制接口,諸如音量旋紐、開關、滑動塊、手柄、旋紐、門、以及其它可以被創建用于使人與計算系統的交互便利的小部件。
為了引用利用上述方法學的例子并且參考圖6A~6G,將描述用于控制圖形輸入板PC 175的顯示屏174的GUI接口172上的虛擬音量旋紐。為了啟動旋紐170,用戶將他們的手指176放到多點觸摸屏178上。該虛擬控制旋紐可以是已經被顯示了的,或者該特定的手指數量、方向或輪廓放下,或者其后立即的手指的運動,或者用戶的交互的這些和其它特性的某些組合可調用該虛擬控制旋紐被顯示。不論發生哪一種情況,計算系統都使手指組與該虛擬控制旋紐相關聯并作出用戶意欲使用該虛擬音量旋紐的判斷。這種相關也可部分基于計算設備在輸入時刻的模式或當前狀態。例如,如果歌曲當前正在計算設備之上播放則同樣的手勢可或者被解釋為音量了解手勢,或者如果當前正在執行對象編輯應用則解釋為旋轉命令。也可提供其它的用戶反饋,包括例如聽覺或觸覺反饋。
一旦如圖6A所示顯示了旋紐170,用戶的手指176就可圍繞旋紐170放置,就象有一個真實的旋紐或刻度盤,并且其后能夠圍繞旋紐170旋轉以便模擬旋轉旋紐170。此外,當旋紐170被“旋轉”時可以提供例如單擊聲音形式的聽覺反饋或者振動形式的觸覺反饋。用戶還可使用他們的另外一只手以握住圖形輸入板PC 175。
如圖6B所示,多點觸摸屏178檢測至少一對圖像。特別地,手指放下時創建第一圖像180,而當手指176旋轉時創建至少一個其它的圖像182。盡管僅示出了兩個圖像,在多數情況下在這兩個圖像之間可能有增量出現的更多的圖像。每個圖像表示手指在特定的瞬時時刻與觸摸屏接觸的輪廓。這些圖像也可被稱為觸擊圖像。應理解,術語“圖像”并不意味著在屏幕178之上顯示該輪廓(而是由觸摸感應設備成像)。應注意的是,盡管使用了術語“圖像”,數據可以是不同時刻代表觸摸平面的其它形式。
如圖6C所示,每個圖像180和182被轉換為特征184的集合。每個特征184與例如來自圍繞旋紐170的每個手指176的指尖以及用于握住圖形輸入板PC 175的另一只手177的拇指的特定的觸擊有關。
如圖6D所示,特征184被分類,即,每個手指/拇指被識別并針對每個圖像180和182分組。在這個特定情況下,與旋紐170相關的特征184A被分組到一起以形成組188,而與拇指相關的特征184B被濾除。在可選方案中,拇指特征184B可單獨地作為各別的特征(或在其它的組中),例如,為了修改該系統的輸入或運行模式或者為了實現其它的手勢,例如在拇指(或者其它的手指)的區域內的屏幕上顯示的與均衡器滑動塊相關的滑動塊手勢。
如圖6E所示,為每個圖像180和182計算特征組188的關鍵參數。與第一圖像180有關的關鍵參數代表初始狀態而第二圖像182的關鍵參數代表當前狀態。
同樣如圖6E所示,由于其接近于旋紐170,旋紐170是與手勢組188有關的UI元素。其后,如圖6F所示,比較來自每個圖像180和182的特征組188的關鍵參數值以確定旋轉向量,即,該特征組從初始到當前狀態順時針旋轉5度。在圖6F中,初始特征組(圖像180)以虛線示意而當前特征組(圖像182)以實線示意。
如圖6G所示,基于旋轉向量,圖形輸入板PC 175的揚聲器192根據手指176的旋轉量增大(或降低)其的輸出,即基于旋轉5度增大音量5%。圖形輸入板PC的顯示屏174還可以根據手指176的旋轉量調節旋紐170的旋轉,即,旋紐170的位置旋轉5度。在多數情況下,旋紐的旋轉與手指的旋轉是同時發生的,即,手指每旋轉1度則旋紐旋轉1度。大體上,虛擬控制旋紐跟隨發生在屏幕上的手勢。更進一步,圖形輸入板PC的音頻單元194可為每個旋轉單元提供單擊聲,例如,根據5度的旋轉提供5次單擊。再進一步地,圖形輸入板PC 175的觸覺單元196可以為每次單擊提供一定數量的振動或者其它的觸覺反饋由此模擬真實的旋紐。
應注意,可以與虛擬控制旋紐手勢一同同時執行附加的手勢。例如,利用兩只手可同時控制一個以上的虛擬控制旋紐,即,每個虛擬控制旋紐使用一只手。可選和附加地,可以同時控制一個或多個滑動條作為虛擬控制按鈕,即,一只手操作該虛擬控制旋紐,而相反的那只手的至少一個手指以及可能一個以上的手指操作至少一個滑動塊以及可能一個以上的滑動條,例如,每個手指一個滑動條。
還應注意,盡管本實施例是利用虛擬控制旋紐描述的,在另一個實施例中,UI元素可以是虛擬滾動輪。作為一個例子,虛擬滾動輪可以模仿在此結合作為參考的美國專利申請Nos.2003/0076303A1、2003/0076301A1、2003/0095096A1中描述的那些真實的滾動輪。例如,當用戶將他們的手指放到虛擬滾動輪的表面上并作出旋轉、轉動或切線手勢運動,可相對窗口中顯示的項目列表執行滾動動作。
圖7是根據本發明的一個實施例的基于觸擊的方法200的框圖。該方法通常開始于塊202,在此檢測到發生在多點感應設備之上的用戶輸入。用戶輸入包括一個或多個觸擊輸入,每個觸擊輸入具有一個唯一的標識符。在塊202之后,基于觸擊的方法200繼續進行到塊204,在此當用戶輸入包括單個唯一標識符(一次觸擊輸入)時用戶輸入被分類為跟蹤或選擇輸入,或者當用戶輸入包括至少兩個唯一標識符(一個以上的觸擊輸入)時分類為手勢輸入。如果用戶輸入被分類為跟蹤輸入,則基于觸擊的方法200繼續進行到塊206,在此執行對應于用戶輸入的跟蹤。如果用戶輸入被分類為手勢輸入,則基于觸擊的方法200繼續進行到塊208,在此執行對應于該用戶輸入的一個或多個手勢控制動作。該手勢控制動作至少部分基于與該至少兩個唯一標識符一同或之間發生的改變。
圖8是根據本發明的一個實施例的基于觸擊的方法250的框圖。基于觸擊的方法250通常開始于塊252,在此當輸入在觸敏表面上敲擊期間捕獲一個初始圖像。在塊252之后,基于觸擊的方法250繼續進行到塊254,在此基于該初始圖像確定觸擊模式。例如,如果該初始圖像包括單個唯一標識符則觸擊模式可對應于跟蹤或選擇模式。另一方面,如果該圖像包括一個以上的唯一標識符,則觸擊模式可對應于手勢模式。在塊254之后,基于觸擊的方法250繼續進行到塊256,在此當輸入在觸敏表面上敲擊期間捕獲下一個圖像。在敲擊期間圖像典型地是順序捕獲的并由此可能有多個圖像與該敲擊有關。在塊256之后,基于觸擊的方法250繼續進行到塊258,在此作出在捕獲初始圖像和捕獲下一個圖像之間該觸擊模式是否改變的判斷。如果觸擊模式改變了,則基于觸擊的方法250繼續進行到塊260,在此該下一個圖像被設置為初始圖像并且其后在塊254基于該新的初始圖像再次確定該觸擊模式。如果該觸擊模式保持不變,則基于觸擊的方法250繼續進行到塊262,在此比較該初始圖像和下一個圖像并且基于該比較生成一個或多個控制信號。
圖9是根據本發明一個實施例的基于觸擊的方法300的框圖。基于觸擊的方法300開始于塊302,在此輸出一個GUI對象。例如,處理器可以指示顯示屏顯示一個特定的GUI對象。在塊302之后,基于觸擊的方法300繼續進行到塊304,在此在該GUI對象之上接收到手勢輸入。例如,用戶在觸摸屏的表面并且當越過所顯示的GUI對象的時候以一種手勢的方式放置或移動他們的手指。該手勢的輸入方式可包括連續發生的一個或多個單個手勢或者同時發生的多個手勢。每個手勢通常有與之相關的特定順序、運動或方向。例如,一個手勢可包括展開手指或合閉手指、旋轉手指、平移手指等等。
在塊304之后,基于觸擊的方法300繼續進行到塊306,在此基于手勢輸入修改該GUI對象并與手勢輸入一致。通過修改,意味著根據正被執行的特定的一個手勢或多個手勢改變GUI對象。與其一致,意思是當該手勢或多個手勢正被執行的時候近似發生改變。在多數情況下,在手勢和GUI對象處發生的改變之間存在一對一的關系并且它們基本上是同時發生的。大體上,GUI對象緊隨在手指的運動之后。例如,展開手指可同時放大該對象、合閉手指可同時縮小GUI該對象、旋轉手指可同時旋轉該對象、平移手指可以允許同時掃視或滾動該GUI對象。
在一個實施例中,塊306可包括確定哪一個GUI對象與被執行的手勢有關,并在其后鎖定該顯示的對象到放置到其上的手指使得GUI對象根據該手勢輸入改變。通過鎖定或使手指與GUI對象相關,GUI對象可同時根據手指正在觸摸屏上所做的動作調整自己。通常該確定和鎖定發生在手指放下時,即,當手指被放到觸摸屏上面時。
圖10是根據本發明的一個實施例的縮放手勢方法350的框圖。縮放手勢方法350可以在多點觸摸屏上執行。縮放手勢方法350通常開始于塊352,在此在觸敏表面同時檢測到至少一個第一手指和第二手指的出現。該至少兩個手指的出現被配置用于指示該觸擊是一個手勢的觸擊而不是基于一個手指的跟蹤觸擊。在某些情況下,僅出現兩個手指指示該觸擊是一個手勢觸擊。在其它情況下,任何多于兩個的手指數量均指示該觸擊是一個手勢觸擊。事實上,手勢觸擊可被配置用于操作無論是兩個、三個、四個或更多個的手指正在觸摸,并且甚至在該手勢期間數量改變了,即,在手勢期間的任何時刻僅需要最少兩個手指。
在塊352之后,縮放手勢方法350繼續進行到塊354,在此比較至少該兩個手指之間的距離。距離可以是手指到手指或每個手指到某些其它的例如矩心的參考點的距離。如果該兩個手指之間的距離增大(展開),則如在塊356中所示生成放大信號。如果該兩個手指之間的距離減小(合閉),則如在塊358中所示生成縮小信號。在多數情況下,放下手指將鎖定該手指到被顯示的特定GUI對象或使其與之相關聯。例如,觸敏表面可以是一個觸摸屏,并且GUI對象可被顯示在該觸摸屏之上。這典型地發生在當至少其中一個手指被放置到GUI對象之上。結果,當手指散開移動時,該放大信號可被用于增大GUI對象中嵌入特征的大小,而當手指收縮到一起時,該縮小信號可被用于減小該對象中嵌入特征的大小。縮放典型地發生在如顯示屏的周邊、窗口的周邊、GUI對象的邊緣等的預定邊界之內。該嵌入式特征可以在多個層上形成,每個層表示不同級別的縮放。在多數情況下,縮放量根據該兩個對象之間的距離變化。此外,縮放典型地可與對象的運動基本上同時發生。例如,當手指展開或合閉時,對象同時放大或縮小。雖然本方法是針對縮放的,應注意的是其也可以用于增大或降低。縮放手勢方法350在諸如出版、圖片、和繪圖程序的圖形程序中特別有用。此外,縮放可用于控制諸如照像機的外圍設備,即,當手指展開時,照像機拉遠,而當手指靠攏時照像機拉近。
圖11A~11H舉例說明了使用上述方法的縮放時序。圖11A舉例說明了一個顯示屏,其展示了具有嵌入級別的北美洲地圖形式的可被縮放的GUI對象364。在某些情況下,如圖所示,GUI對象位于形成GUI對象364的邊界的一個窗口之內。圖11B舉例說明了用戶將他們的手指366放置到北美洲368的一個區域,特別地是美國370以及更特別地加利福尼亞洲372之上。為了在加利福尼亞洲372上放大,用戶如圖11C所示開始展開他們的手指366。隨著手指366進一步展開時(距離增大),該地圖在北加利福尼亞洲374上進一步放大,然后到北加利福尼亞洲374的特定區域,然后到海灣區域376,然后到半島378(例如,舊金山和圣何塞地區之間的區域),然后如圖11D~11H所示接著到位于舊金山和圣何塞之間的San Carlos市380。為了縮小San Carlos 380并回到北美洲368,手指沿與上述的順序相反的順序合閉回到一起。
圖12是根據本發明的一個實施例的掃視方法400的框圖。掃視手勢可在多點觸摸屏之上執行。掃視方法400通常開始于塊402,在此在觸敏表面上在同一時刻檢測到至少一個第一對象和第二對象的出現。該至少兩個手指的出現被配置用于指示該觸擊是手勢觸擊而不是基于一個手指的跟蹤觸擊。在某些情況下,僅出現兩個手指指示該觸擊是一個手勢觸擊。在其它情況下,任何多于兩個的手指數量均指示該觸擊是一個手勢觸擊。事實上,手勢觸擊可被配置用于操作無論是兩個、三個、四個或更多個的手指正在觸摸,并且甚至在該手勢期間數量改變了,即,僅需要最少兩個手指。在塊402之后,掃視方法400繼續進行到塊404,在此監視當目標穿越觸摸屏移動到一起時該兩個對象的位置。在塊404之后,掃視方法400繼續進行到塊406,在此當兩個對象的位置相對于初始位置改變時生成一個掃視信號。在多數情況下,放下手指將鎖定該手指到顯示在觸摸屏上的特定GUI對象或使其與之相關聯。典型地,當至少其中一個手指被放到GUI對象上的圖像之上時。結果,當各手指越過觸摸屏移動到一起時,該掃視信號可被用于在該手指的方向上平移圖像。在多數情況下,平移量根據兩個對象移動的距離而變化。此外,掃視典型地可與對象的運動基本上同時發生。例如,當手指移動的時候,對象隨手指同時移動。
圖13A~13D舉例說明了基于上述的掃視方法400的掃視時序。利用圖11的地圖,圖13A舉例說明了用戶將他們的手指366放到地圖上。當放下時,手指300被鎖定到該地圖。如圖13B所示,當手指366垂直向上移動時,整個地圖364被向上移動由此致使先前看到的地圖364的一部分將被放置到顯示區以外而部分看不見的地圖364被放置到顯示區內。如圖13C所示,當手指366水平向一旁移動時,整個地圖364被向一旁移動由此致使先前看到的地圖364的一部分將被放置到顯示區以外而部分看不見的地圖被放置到顯示區內。如圖13D所示,當手指366斜對角移動時,整個地圖364被斜對角移動由此致使先前看到的地圖364的一部分將被放置到顯示區以外而部分看不見的地圖被放置到顯示區內。如應當理解的那樣,地圖364的運動遵循手指366的運動。整個過程類似于沿一張桌面滑動一頁紙。手指施加到紙上的壓力鎖定紙張到手指并在當手指橫越桌面滑動時,紙張隨著它們移動。
圖14是根據本發明的一個實施例的旋轉方法450的框圖。旋轉手勢可在多點觸摸屏上執行。旋轉方法450通常開始于塊452,在此同時檢測到一個第一對象和第二對象的出現。該至少兩個手指的出現被配置用于指示該觸擊是手勢觸擊而不是基于一個手指的跟蹤觸擊。在某些情況下,僅出現兩個手指指示該觸擊是一個手勢觸擊。在其它情況下,任何多于兩個的手指數量均指示該觸擊是一個手勢觸擊。事實上,手勢觸擊可被配置用于操作無論是兩個、三個、四個或更多個的手指正在觸摸,并且甚至在該手勢期間數量改變了,即,僅需要最少兩個手指。
在塊452之后,旋轉方法450繼續進行到塊454,在此設置每個手指的角度。角度典型地是相對于參考點確定的。在塊454之后,旋轉方法450繼續進行到塊456,在此當至少其中一個對象的角度相對于參考點改變時生成旋轉信號。在多數情況下,放下手指將鎖定該手指到顯示在觸摸屏上的特定GUI對象或使其與之相關聯。典型地,當至少其中一個手指被放到GUI對象上的圖像之上時,該GUI對象將與該手指相關聯或被鎖定到該手指。結果,當手指旋轉時,該旋轉信號可被用于以手指旋轉的方向旋轉該對象(例如,順時針、逆時針)。在多數情況下,對象旋轉的量根據手指旋轉的量變化,即,如果手指移動5度則對象也移動5度。此外,旋轉典型地可以與手指的運動基本上同時發生。例如,隨著手指旋轉,對象隨手指同時旋轉。
圖15A~15C舉例說明了基于上述的方法的旋轉時序。利用圖11的地圖,圖15A舉例說明了用戶將他們的手指366放到地圖364之上。當放下時,手指366被鎖定到地圖364。如圖15B所示,當手指366以順時針方向旋轉時,整個地圖364根據該旋轉的手指366在順時針方向上旋轉。如圖15C所示,當手指366以逆時針方向旋轉時,整個地圖364根據該旋轉的手指366在順時針方向上旋轉。
應注意的是,圖10~15描述的方法可以在同一手勢敲擊期間實現。也就是說,在手勢敲擊期間可以執行所有的縮放、旋轉和掃視,其可包括展開、旋轉和滑動手指。例如,一旦放下至少兩個手指,顯示的對象(地圖)就與該兩個手指相關聯或鎖定。為了縮放,用戶可展開或合上他們的手指。為了旋轉,用戶可旋轉他們的手指。為了掃視,用戶可滑動他們的手指。這些動作的每一個都可以以連續的動作同時發生。例如,用戶可以展開和合閉他們的手指的同時橫越觸摸屏旋轉和滑動手指。作為選擇,用戶可將這些動作分段而不必重置手勢敲擊。例如,用戶可以首先展開他們的手指,然后旋轉他們的手指,然后合閉他們的手指,然后滑動他們的手指等等。
圖16是根據本發明的一個實施例的GUI操作方法500的框圖。GUI操作方法500是為初始化GUI內的浮動控制配置的。GUI操作方法500通常開始于塊502,在此檢測諸如手指或拇指的對象的出現。這可例如利用觸摸屏完成。在塊502之后,GUI操作方法500繼續進行到塊504,在此對象被識別(找到了對象的標識符)。該對象可在多個對象之中被識別。例如,參見上面的圖2的塊104。
在塊504之后,GUI操作方法500繼續進行到塊506,在此在對象的附近生成一個圖像。該圖像典型地是基于所識別的對象的。該圖像可包括窗口、信息欄、對話框、菜單、圖標、按鈕、光標、滾動條等等。在某些情況下,用戶可以選擇并激活該圖像(或其內嵌入的特征)以便啟動功能和任務。舉例來說,圖像可以是用戶接口元素或一組用戶接口元素(例如,一個和多個打開、關閉、最小化、或最大化窗口的按鈕)。該圖像還可以是一個或多個圖標,在當該圖標被選擇打開時運行特定的程序或文件。該圖像另外可對應于非交互式文本和圖形。在多數情況下,只要檢測到對象就顯示該圖像或其可被顯示一段預定數量的時間,即,在一段時間超時之后被移除。
在一個特定實施例中,圖像包括一個或多個可由用戶選擇的控制選項。控制選項可包括一個或多個用于實現各種任務的控制按鈕。例如,控制選項框可包括音樂收聽控制按鈕,例如播放、暫停、查找以及菜單。
圖17A~17E舉例說明了利用上述的方法的浮動控制時序。如圖17A所示,用戶510使用圖形輸入板PC 512并為此利用一只手514握住圖形輸入板PC 512同時利用另一只手516導航(例如,跟蹤、手勢表示)。如圖17B所示,其接近于用戶拿著圖形輸入板PC 512,拿著的那只手514的部分拇指放在觸摸屏520之上。如圖17C所示,圖形輸入板PC 512識別該拇指并在鄰近該拇指顯示一個控制框522。控制框522包括各種按鈕524,其可以被用戶的拇指選擇以啟動圖形輸入板PC 512內的任務。如圖17D所示,當拿著圖形輸入板PC 512時,拇指延伸到其中一個按鈕524之上并在隨后輕敲由此選擇與按鈕524相關的任務。舉例來說,該任務可能與啟動一個程序或獲得對網絡的訪問或改變設備的工作模式有關。控制框522合按鈕524可被用于改變觸摸屏520的輸入模式使得例如與用戶的另一只手的手指做出的完全相同的手勢根據哪一個按鈕524被選擇了具有多種意義。如圖17E所示,當拇指移動離開觸摸屏520時,控制框522可能超時并消失。作為選擇,可以使用常規的關閉圖標或按鈕關閉控制框。
圖18是根據本發明的一個實施例的GUI操作方法550的框圖。GUI操作方法550是為了啟動縮放目標而配置的。GUI操作方法550通常開始于塊552,在此顯示一個控制框GUI元素。控制框包含一個或多個控制按鈕,其稍微靠近,并且其可被用于執行動作。控制框可以例如包括諸如最大化、最小化、關閉等等的控制按鈕。在塊552之后,GUI操作方法550繼續進行到塊554,在此當檢測到在控制框或者其中一個控制按鈕之上出現一個對象時,控制框被擴大,或至少其中一個控制按鈕被擴大一段時間。在控制框被擴大的情況下,每個控制按鈕均被擴大由此更易于對它們作出選擇。在僅僅控制按鈕被擴大的情況下,用戶將確定這是否是正確的按鈕并且如果是的話則選擇該擴大了的按鈕,或者重新啟動該過程使得適當的控制按鈕被呈現。在多數情況下,控制按鈕的大小與手指的大小一致使得它們可易于被該對象選擇。在塊554之后,GUI操作方法550繼續進行到塊556,在此當檢測到在其中一個擴大了的控制按鈕之上出現了對象時生成一個與所選擇的控制按鈕有關的控制信號。
圖19A~19D舉例說明了利用上述的GUI操作方法550的縮放目標時序。如圖19A所示,用戶510將他們的手指576放到控制框578之上。由于控制框578在其中包含的按鈕580要比手指576要小并且位置靠近,對于用戶510來說難于在可能不會壓到一個不期望的按鈕580,例如與所期望的按鈕鄰近的按鈕,而直接作出選擇。舉例來說,手指576可能覆蓋兩個或多個按鈕580。如圖19B所示,當用戶將他們的手指放到控制框之上時,至少部分控制框578被擴大,包括在其中包含的按鈕580。如圖19C所示,一旦控制框達到其擴大狀態,用戶就可以選擇其中一個擴大了的按鈕,其現在接近拇指的大小。舉例來說,用戶可以在所期望的控制按鈕上敲擊。如圖19D所示,在按鈕被選擇或者在預定一段時間其中沒有作出任何選擇(例如,超時)之后或者當用戶將他們的手指移動離開控制框時控制框還原到其初始大小。
圖20是根據本發明的一個實施例的GUI操作方法600的框圖。GUI操作方法600是為了啟動頁面轉換而配置的。GUI操作方法600通常開始于塊602,在此在GUI中顯示來自許多頁面的一個頁面。舉例來說,頁面可以與電子圖書有關。在塊602之后,GUI操作方法600繼續進行到塊604,在此檢測到在預定區域中出現一個目標(或多個目標)。該預定區域可以例如對應于在其處顯示頁碼的區域。在塊604之后,GUI操作方法600繼續進行到塊606,在此當對象(或多個對象)在該預定區域內平移時生成一個頁面轉換信號。該平移被配置用于模擬手指翻真實紙質精裝書內的頁面。平移的方向指示是翻到頁面列表的下一頁還是翻到上一頁。例如,如果手指從右至左掃過,則生成一個后翻頁信號,而如果手指是從左至右掃過,則生成一個前翻頁信號。這個GUI操作方法600可以以幾種方式增強。例如,如果多個手指掃過,則這將創建大于一頁的翻頁信號。例如,兩個手指掃過相當于翻兩頁,三個手指掃過相當于翻三頁等等。或者兩個手指掃過相當于翻10頁,三個手指掃過相對于翻50頁等等。
圖21A~21D舉例說明了利用上述的GUI操作方法600的頁面翻轉時序。如圖21A所示,其接近于用戶510拿著圖形輸入板PC 512,用戶在頁碼上面以到頁面630左側的方向掃過他們的手指。如圖21B所示,圖形輸入板PC 512識別頁碼區內的該掃動以及掃動的方向并因此圖形輸入板PC 512顯示頁面組內的下一頁。這個操作可被重復執行以便快速移動穿過頁面組。如圖21C所示,用戶在頁碼上面以到頁面630右側的方向掃過他們的手指576。如圖21D所示,圖形輸入板PC 512識別頁碼區內的該掃動以及掃動的方向并因此圖形輸入板PC 512顯示頁面組內的上一頁。這個操作可被重復執行以便快速移動穿過頁面組。
圖22是根據本發明的一個實施例的GUI操作方法650的框圖。GUI操作方法650是為典型地在滾動或掃視操作期間啟動慣性而配置的。慣性通常定義為靜止的物體保持靜止或者運動的物體繼續以直線運動直到受到外力的干擾的趨勢。在本特定的實施例中,GUI或其的某些部分與慣性特性有關,這就是其對運動中的變化速率的阻力。對于具有較高慣性特性的GUI,對于給定輸入,GUI的加速將更慢。另一方面,如果GUI具有較低的慣性特性,則對于給定輸入的加速將較快。
GUI操作方法650通常開始于塊652,在此一個圖形圖像被顯示在GUI上。在塊652之后,GUI操作方法650繼續進行到塊654,在此檢測到觸敏表面上的滾動或掃視敲擊。舉例來說,敲擊可以是線性的或旋轉的敲擊。在線性敲擊期間,滾動或掃視的方向典型地跟隨敲擊的方向。在旋轉敲擊期間(參見圖6),該旋轉敲擊典型地被轉換為線性輸入,其中順時針運動可對應于垂直向上而逆時針運動可對應于垂直向下。在塊654之后,該處理流程繼續進行到塊656,在此確定滾動或掃視敲擊的速度和方向。在塊656之后,GUI操作方法650繼續進行到塊658,在此根據滾動或掃視敲擊的速度和方向以及相關的慣性特性移動圖像。在塊658之后,GUI操作方法650繼續進行到塊660,在此甚至在當沒有再檢測到掃視或滾動敲擊時繼續圖像的運動。例如,當用戶從觸敏表面抬起他們的手指時,滾動或掃視功能繼續如同仍然作出了滾動或掃視敲擊一樣。在某些情況下,無限地持續圖像的運動直到執行了某一制動(停止或減速)控制。這個特定的方法模擬了失重。在其它的情況下,圖像的運動根據有關的慣性GUI操作方法650減速。比喻來說,圖像可相當于一張紙在桌面上移動。為了移動該頁紙,用戶在所期望的方向上在紙上施加一個力。當用戶將他們的手指拿離紙張時,紙張將繼續以期望的方向沿桌面滑動一段時間。在手指拿離之后其滑動的量通常依賴于其的質量、手指施加的力、紙和桌面之間發現的摩擦力等。如應當理解的那樣,傳統上當滾動和掃視被實現時,當手指抬起時則滾動和或掃視停止。相反,利用上述提及的方法,當手指抬起時滾動或掃視繼續移動。
GUI操作方法650可另外包括模塊A和B。在模塊A,在觸敏表面檢測到一個諸如手指的對象,當圖像移動時不需要該對象的協助(塊660)。在模塊B,當檢測到該對象時該圖像的運動停止,即,新的觸擊用作制動手段。使用上述的比喻,當紙張穿越桌面滑動時,用戶將他們的手指按在紙張上面從而停止其的運動。
圖23A~23D舉例說明了利用上述的方法的慣性時序。圖23A舉例說明了呈現GUI 678的顯示屏,該顯示屏包括窗口679,窗口679具有一個媒體項681列表680。窗口679和列表680可對應于例如在由Cupertino,CA的公司蘋果計算機公司制造的iTunes中發現的控制窗口和音樂列表。如圖23B所示,當用戶將他們的一個手指或多個手指576在觸摸屏520之上滑動時,實現了將媒體項上移或下移穿過窗口的垂直滾動。滾動的方向可跟隨手指移動的同一個方向(如圖所示),或者以相反的方向移動。在一個特定的實施例中,單個手指用于從列表選擇媒體項,而兩個手指被用于滾動穿過列表。
滾動通常適合用于穿越顯示屏上的顯示區移動被顯示的數據或圖像(例如,媒體項681)使得新的數據集(例如,媒體項681)被帶入顯示區內的視圖。在多數情況下,一旦顯示區滿了,則出現在顯示區邊緣處的每個新的數據集和所有的其它數據集挪動一個位置。也就是說,新的數據集替代移出顯示區的每個數據集。大體上,這些功能允許用戶查看當前在顯示區之外的連續的數據集。在多數情況下,用戶能夠通過以更快速度移動他或她的手指加速他們對數據集的遍歷。在在此結合作為參考的美國專利申請Nos.2003/0076303A1,2003/0076301A1,2003/0095096A1中能夠找到滾動穿過列表的例子。
如圖23C所示,甚至于當手指移離觸摸屏時所顯示的數據還繼續移動。該持續移動至少部分基于之前的運動。例如,滾動可能以相同的方向和速度繼續。在某些情況下,滾動隨時間的過去慢下來,即,穿過媒體項的速度越來越慢直到滾動最終停下來從而留下靜止的列表。舉例來說,每個新帶入顯示區的媒體項都將逐漸降低速度。可選或附加地,如圖23D所示,當手指576返回到觸摸屏520上時,所顯示的數據停止移動。也就是說,放回手指到觸摸屏上可實現制動,其停止或減慢連續的動作運動。盡管這個時序是針對垂直滾動的,應注意的是這并不是一個限制而是可以使用上述的方法執行水平滾動以及掃視。
圖24是根據本發明的一個實施例的GUI操作方法700的框圖。方法700配置用于模擬一個鍵盤。該方法通常開始于塊702,在此在屏幕上呈現一個鍵盤。在塊702之后,處理流程繼續進行到塊704,在此在觸摸屏上同時檢測到第一鍵之上的第一對象和第二鍵之上的第二對象的出現。該觸摸屏可位于顯示屏之上或之前。舉例來說,顯示屏可以是LCD而觸摸屏可以是多點觸摸屏。在塊704之后,該處理流程繼續進行到塊706,在此當在第一鍵之上檢測到第一對象以及當同時在第二鍵之上檢測到第二對象時生成一個或多個同時發生的控制信號。
在一個實施例中,當在第一鍵之上檢測到第一對象以及當同時在第二鍵之上檢測到第二對象時僅生成一個控制信號。舉例來說,第一鍵可能是shift鍵而第二鍵可能是符號鍵(例如,字母、數字)。通過這種方式,該鍵盤充當一個常規的鍵盤,即,允許用戶同時選擇多個鍵以便改變符號,即大/小寫。該鍵也可對應于control鍵,alt鍵,escape鍵,功能鍵等等。
在另一個實施例中,為每個同時發生的被激勵的鍵(鍵觸擊)生成一個控制信號。例如,可同時鍵入字符組。在一些情況下,運行在鍵盤后面的應用程序可被配置用于基于某種預定的標準確定字符時序。例如,盡管字母可能是混亂的,應用程序能夠基于拼寫、用法、上下文等等確定正確的字符時序。
盡管僅描述了兩個鍵的,應注意的是兩個鍵并不是一個限制,而是可同時激勵兩個以上的鍵以產生一個或多個控制信號。例如,可以實現control-alt-delete功能或者可同時鍵入或更大的字符組。
圖25A~25D舉例說明了利用上述的方法的鍵盤時序。圖25A舉例說明了以鍵盤形式展示一個GUI對象730的顯示屏。如圖25B所示,用戶將他們的手指576放到多點觸摸屏520之上,放到鍵盤730之上以錄入數據到字處理程序。舉例來說,用戶可放一個手指576A到Q鍵上以便在字處理程序中產生小寫的“q”。如圖25C所示,當用戶決定一個字母應該大寫時,用戶將一個手指576B放在shift鍵上而另一只手指576A放到所想要的字母(如由箭頭指示的)上。如圖25D所示,為了繼續以小寫鍵入,用戶簡單地將他們的手指576B從shift鍵移開并將他們的手指576A放到所想要的字母上(如由箭頭所指示的)。
圖26是根據本發明的一個實施例的GUI操作方法750的框圖。方法750被配置用于模擬諸如在其所有內容在此結合作為參考的美國專利公開Nos.2003/0076303A1,2003/0076301A1,2003/0095096A1中描述的那些滾動輪。該方法通常開始于塊752,在此在顯示屏上呈現一個虛擬滾動輪。在一些情況下,該虛擬滾動輪可在其中心包括一個虛擬按鈕。該虛擬滾動輪被配置用于實現例如滾動穿過一個列表而該按鈕被配置用于實現選擇例如存儲在列表中的項目。在塊752之后,該方法繼續進行到塊754,在此在觸摸屏上檢測到在虛擬滾動輪之上出現至少一個手指以及在某些情況下一個以上的手指,如第一和第二手指。該觸摸屏可位于顯示屏之上或之前。舉例來說,顯示屏可以是LCD而觸摸屏可以是多點觸摸屏。在塊754之后,該方法繼續進行到塊756,在此設置手指在虛擬滾動輪上的初始位置。舉例來說,可確定手指相對于參考點的角度(例如,12點鐘、6點鐘等)。在多數情況下,當手指被放置到虛擬滾動輪之上時,手指的放下與該虛擬滾動輪相關、鏈接或鎖定各個手指(或一個手指)到該虛擬滾動輪。
在塊756之后,方法750繼續進行到塊758,在此當手指的角度相對于參考點改變時生成一個旋轉信號。該旋轉信號可用于執行包括例如滾動穿過多個媒體項、以及可能隨手指移動該虛擬滾動輪的幾個動作。舉例來說,該信號的結合和頻率可被轉換為用于移動選擇器穿過媒體項所需的以及用于使虛擬滾動輪圍繞其軸移動所需的距離、方向和速度。在多數情況下,滾動和輪子旋轉的量根據手指旋轉的量變化。舉例來說,如果手指移動5度則輪子也移動5度。此外,輪子的滾動和旋轉典型地基本上與手指的運動同時發生。例如,當手指旋轉時,同時執行輪子的滾動和旋轉。此外,盡管不是要求的,輪子的滾動和旋轉的方向與手指運動的方向相同。例如,虛擬滾動輪以手指旋轉的方向(例如,順時針、逆時針等)旋轉。
在某些情況下,上述的慣性原理可被應用到該虛擬滾動輪。在諸如這樣的情況下,當各手指(或其中一個手指)抬離虛擬滾動輪時該虛擬滾動輪繼續滾動并且借助于虛擬摩擦力慢慢地停下來。可選或附加地,可通過將手指(或被移離的手指)放回到虛擬滾動輪上可以停止該持續的旋轉從而制動該虛擬滾動輪的旋轉。
應當指出的是,旋轉虛擬滾動輪并不是限制,并且在某些情況下,虛擬滾動輪可保持靜止(例如,不隨手指旋轉)以便模擬一個觸摸表面而不是一個機械轉輪。
圖27A~27D舉例說明了利用上述方法的滾動輪時序。圖27A舉例說明了呈現了一個滾動輪的顯示屏。該滾動輪可以作為程序的一部分自動顯示或者可以在當執行了一個特定的手勢時被顯示。舉例來說,在音樂程序(如由Cupertino,CA,的蘋果計算機公司制造的iTunes)的操作期間,當兩個手指而不是典型地用于音樂程序中的跟蹤的一個手指被放置到觸摸屏上時該虛擬滾動輪將出現在該觸摸屏上。在某些情況下,僅當兩個手指被放置在GUI的預定區域上時才會出現虛擬滾動輪。作為選擇,虛擬滾動輪的出現可基于其它或另外數量的手指。例如,當音樂程序正在運行時該虛擬滾動輪可響應于發生的任何觸擊而出現。
如圖27B所示,用戶將他們的手指放到多點觸摸屏520之上,放到滾動輪之上。在某些點上,手指被鎖定到該滾動輪。這可發生例如在手指放下時。如圖27C所示,當手指以順時針方向旋轉時,滾動輪根據旋轉的手指以順時針方向旋轉。如圖27D所示,當手指以逆時針方向旋轉時,滾動輪根據旋轉的手指以逆時針方向旋轉。可選地,虛擬滾動輪的旋轉也可以隨手指的線性運動以切線方式旋轉。
圖28是根據本發明的一個實施例的用戶接口方法800。用戶接口方法800可以例如在具有顯示屏和諸如觸摸屏的觸敏輸入設備的計算設備上執行。用戶接口方法800開始于塊802,在此檢測到一個觸擊。這可在當諸如指示筆或者一個或多個手指的對象被放到觸敏輸入設備的觸敏表面時使用觸敏輸入設備實現。
一旦檢測到觸擊,用戶接口方法800繼續進行到塊804,在此響應該觸擊確定用戶接口(UI)模式。用戶接口模式可廣泛變化。用戶接口模式可包括導航模式、滾動模式、數據錄入模式、編輯模式、控制模式、信息模式、顯示模式等等。每一種模式典型地具有一個或多個與之相關的GUI接口元素。舉例來說,虛擬滾動輪(例如,圖27)或滑動條可能與滾動模式相關、鍵盤(例如,圖25)或小鍵盤(keypad)可能與數據錄入模式相關、諸如格式化工具條或繪圖工具條的工具條可能與編輯模式相關、包括按鈕的控制面板可能與控制模式相關、窗口可能與信息模式相關等等。
基于包括例如一個或多個當前在計算設備上運行的應用、一個或多個應用的當前狀態或模式、和/或與該觸擊有關的觸擊特性的一個或多個條件可以在塊804確定用戶接口模式。事實上,在塊804確定用戶接口模式涉及監視和分析一個或多個條件。
當前應用可例如包括操作系統(例如,Mac OS)、字處理程序、電子數據表程序、繪圖編輯程序、圖像編輯程序、游戲程序、照片管理程序(例如,iPhoto)、音樂管理程序(例如,iTunes)、視頻編輯程序(例如,iMovie)、電影管理程序(例如,QuickTime)、音樂編輯程序(例如,GarageBand)、因特網接口程序等等。
應用的當前狀態或模式可對應于應用(例如,當前窗口或窗口內的窗口)的活動部分。例如,音樂管理程序的活動部分可對應于音樂控制模式、播放列表選擇模式、菜單模式等等。此外,照片管理程序的活動部分可對應于照片瀏覽模式或照片編輯模式。更進一步地,因特網接口程序的活動部分可對應于web模式或email模式。
另一方面,觸擊特性可例如對應于觸擊位置、觸擊ID、觸擊次數等,如同以上提及的許多實施例中描述的那樣。
關于應用,不同的應用可指示不同的UI模式。例如,字處理或電子數據表應用可指示數據錄入模式、而音樂管理程序可指示控制或滾動模式。關于應用的當前狀態,不同的應用模式可指示不同的UI模式。例如,在音樂管理程序中,菜單窗口可指示一個UI模式,而播放列表窗口可指示另一個UI模式。
關于觸擊,手指的數量可指示不同的UI模式。例如,一個手指可指示一個第一模式而兩個手指可指示一個第二模式。另外,觸擊的身份可指示不同的UI模式。例如,拇指可指示一個第一模式而食指可指示一個第二UI模式。此外,觸擊的位置可指示不同的UI模式。例如,第一觸擊位置可指示一個第一UI模式,而第二觸擊位置可指示一個第二UI模式(如果觸擊位于音樂程序的邊界之上則可以實現第一UI模式,而如果觸擊是位于音樂程序中的播放列表或歌曲列表之上時則可以實現第二UI模式)。
在一個實施例中,用戶接口模式僅基于一個條件。例如,用戶接口條件僅基于應用、應用的當前狀態以及上述的各種觸擊特性的其中之一。在另一個實施例中,用戶接口模式基于多個條件。例如,用戶接口模式可基于至少從應用選擇的應用當前狀態和各種觸擊特性的組合。舉例來說,應用與第一觸擊特性結合可以指示第一UI模式,而同樣的應用與第二觸擊特性結合可以指示第二UI模式。
為了引證幾個例子,如果應用是字處理或電子數據表程序則可以確定該模式為數據錄入模式使得數據能夠被輸入到該電子數據表(例如,鍵盤)。如果應用是一個音樂管理程序并且當前正顯示一個播放列表(活動部分),則可以確定該模式為滾動模式使得可以滾動穿過列表中的項以便找到想得到的項(例如,滾動輪)。可選地,如果正在播放歌曲(活動部分),則可以確定該模式為控制模式使得可以控制播放歌曲的方式(例如,播放,停止,定位和音量控制選項)。另外,如果應用是照片管理程序并且顯示了一張特定的照片(活動部分),則可以確定該模式為控制模式使得可以修改該照片(例如,轉換為黑白的、消除紅眼(red eye),以及滾動選項)。
在確定了用戶接口模式804之后,用戶接口方法800繼續進行到塊806,在此基于該用戶接口模式顯示一個或多個GUI元素并響應該觸擊。在某些情況下,僅顯示一個GUI元素而在另外的情況下顯示多個GUI元素。GUI元素典型地與特定的模式相關。例如,滑動條或滾動輪可能在滾動模式中顯示,鍵盤或小鍵盤可能在數據錄入模式中顯示,工具條可能在編輯模式中顯示,各種按鈕或控制面板可能在控制模式中顯示,而信息窗口可能在信息模式中顯示。
可以以各種方式顯示GUI元素。例如,其可被放到當前被顯示的圖形圖像之上,或者其可取代當前顯示的圖形圖像(例如,最小化、移位等)。在某些情況下,GUI元素被處理為半透明的使得布置在該GUI元素之下的當前圖形圖像能夠被看見(從而消除了最小化和移位)。這在當使用滾動輪穿過布置在該滾動輪的下面的列表時是有幫助的。此外,GUI元素可被放置在該觸擊的附近或者可被放置在某個預定的位置。該預定的位置可以基于人機工程學,即,對于用戶來說什么是最佳的位置。
除了上述之外,可以使用諸如逐漸遞增、淡入、彈出、以及某些情況下可甚至于脈動、跳動等過渡效果來顯示GUI元素。如果是彈出效果,則GUI元素被立即帶入視圖。如果是逐漸遞增效果,如圖29A~29D所示,則最初顯示一個較小的GUI元素820A(滾動輪),此后GUI元素820A持續增大從各個尺寸820B和820C直到其達到其期望的尺寸820D。增長的速度可基于觸擊的壓力。例如,如果觸擊壓力較低,則GUI元素可能增長緩慢而如果觸擊壓力較高則GUI元素可更快速地增長。此外,GUI元素的最終尺寸可基于觸擊的長度。例如,當不再檢測到觸擊時GUI元素停止增長。或者,該速度和尺寸可以是用戶可調的,例如通過一個控制面板。如果是淡入效果,如圖30A~30D所示,GUI元素822從什么也沒有開始被緩慢帶入視圖,經過各種級別的失真和透明度822A-822C,到最后完整的圖形822D。淡入可與逐漸遞增同樣地被控制。例如,可以根據觸擊的壓力和長度控制淡入的速度和級別。
該過渡效果甚至可繼續至當前顯示的圖像,即在檢測到觸擊之前當前顯示的圖像。在一個實施例中,相反的效果發生在當前顯示的圖像上。例如,如圖31A~31D所示,當GUI元素820增長的越來越大時當前顯示的圖形圖像826越來越小地最小化。可選地,如果GUI元素立即彈出,則當前顯示的圖形圖像可立即消失或被立即最小化。
一旦顯示了GUI元素(806),用戶接口方法800繼續進行到塊808,在此啟用GUI元素的功能。例如,監視與該GUI元素有關的觸擊事件并執行與觸擊相關的動作。GUI元素的啟用可與GUI元素的顯示同時發生使得一旦GUI元素被顯示則用戶能夠立即開始使用該GUI元素。舉例來說,在滾動模式中,可以顯示一個虛擬滾動輪并且當被啟用時就監視與該滾動輪有關的觸擊事件。在監視期間,當手指圍繞該虛擬滾動輪旋轉時生成與該滾動輪上的手指的位置相關的控制信號。這些信號可被用于執行滾動。例如,信號的數量、組合和頻率可被轉換為移動選擇條穿過列表所需的距離、方向和速度。舉例來說,對于虛擬滾動輪更為詳細的描述以及它們是如何起作用的參見圖6、26和27。
在啟用和顯示GUI元素的某些點處,作出有關是否使GUI元素無效的確定812。確定812可以以各種方式作出。例如1)沒有再檢測到觸擊,2)一段預設時間內沒有檢測到觸擊,3)發生超時(自從GUI元素首次被顯示/啟用已經過去一段預設的時間量),或者4)用戶選擇(例如,用戶選擇了關閉該GUI元素的按鈕)。
如果該確定指示使其無效,則該方法繼續進行到塊814,在此GUI元素被禁用并從顯示屏移除。一旦被禁止,當觸擊發生時不再執行動作。GUI元素從顯示屏的移除可類似于顯示該GUI元素操作,其中可使用諸如緩慢淡出、逐漸收縮或立即消失(突然消失)將其移除。移除的過渡效果可與顯示過渡效果相反操作。例如,GUI元素淡出類似于淡入、縮小類似于增大或者突然消失類似于突然出現。此外,當被替代或縮小的當前圖形圖像可以慢慢地增長到它們最初的尺寸和形狀時GUI元素可慢慢地隱藏和消失。如果確定沒有指示使其無效,則該方法維持GUI元素的顯示及其的啟用。
圖32是根據本發明的一個實施例的確定方法850。該確定方法可例如對應于圖28中的塊804。確定方法開始于塊852,在此確定當前的應用。確定方法繼續進行到塊854,在此確定應用的當前狀態。在塊854之后,確定方法繼續進行到塊856,在此確定與該觸擊效果有關的觸擊特性。確定方法繼續進行到塊860,在此基于來自塊852-858的結果選擇UI模式。舉例來說,針對一組特定的條件一組規則可指示適當的UI模式。
圖33是根據本發明的一個實施例的用戶接口方法900。該方法可例如在具有顯示屏和諸如觸摸屏的觸敏輸入設備的計算設備上執行。接口方法900開始于塊902,在此顯示一個歌曲列表。圖34A示出了包括歌曲列表932A的窗口930A的一個例子,而圖35A示出了包括歌曲列表932B的窗口930B的另一個例子。圖34A可例如是顯示在由Cupertino,設備CA的蘋果計算機公司制造的iPod上的圖形用戶接口,而圖35A可以是例如與一個音樂管理程序,諸如由Cupertino,CA蘋果計算機公司制造的iTunes,相關聯的一個圖形用戶接口。
在塊902之后,用戶接口方法900繼續進行到塊904,在此在所顯示的歌曲列表(或窗口或整個GUI)之上檢測到觸擊。這可當諸如指示筆或一個或多個手指的對象被放到諸如觸摸屏的觸敏輸入設備的觸敏表面上時利用該觸敏輸入設備實現。圖34B和35B示出了手指925放置到包括歌曲類別932的窗口930之上。
一旦檢測到觸擊,用戶接口模塊900繼續進行到塊906,在此激活一個虛擬滾動輪。也就是說,除了歌曲類別之外還顯示一個虛擬滾動輪并且啟用其的功能。本質上,因為該歌曲列表被觸擊,提供允許用戶穿過歌曲列表中的歌曲的滾動輪。在某些情況下,該虛擬滾動輪取代媒體項,即,媒體項被最小化或被移位以便為虛擬滾動輪騰出空間。在其它情況下,虛擬滾動輪被安置或放置在媒體項之上(媒體項保持它們當前的尺寸、形狀和位置)。可以使虛擬滾動輪半透明使得可以透過該虛擬滾動輪看到媒體項。圖34C和35C示出了放置在包括歌曲列表932的窗口930之上的透明的虛擬滾動936。可選地,可以顯示一個虛擬滑動條。
一旦被顯示,則作出有關是否執行了有關于該虛擬滾動輪的滾動觸擊事件(或手勢)。例如,是否有手指放到該滾動輪之上以及該手指是否以旋轉方式圍繞該滾動輪移動。
如果用戶執行了滾動觸擊事件,則用戶接口方法900繼續進行到塊910,在此實現滾動穿過與該滾動輪觸擊事件相關的歌曲列表。舉例來說,當手指圍繞虛擬滾動輪旋轉時一個選擇器條可能從一首歌移動到另一首。圖34D和35D示出了手指925圍繞虛擬滾動輪936旋轉,以及選擇器條938根據旋轉的手指925線性移動穿過歌曲列表932。在該舉例說明的實施例中,當手指以順時針方式旋轉時選擇器條線性向上移動而當手指以逆時針方式旋轉時線性向下移動。然而應注意,這并不是一個限制。例如,當手指以順時針方式旋轉時選擇器條可線性向下移動而當手指以逆時針方式旋轉時線性向上移動。
如果沒有執行滾動或選擇觸擊事件,則用戶接口方法900繼續進行到塊916,在此使該虛擬滾動輪無效。也就是說,虛擬滾動輪被禁止并從顯示屏移除。圖34E和35E示出了沒有虛擬滾動輪936的顯示屏928。盡管移除了虛擬滾動輪936,典型地保持對該歌曲列表所作的修改,即選擇器條938的位置。
在某些情況下,虛擬滾動輪可以包括橫越在其表面上的按鈕區或者位于其中心或圍繞其各邊的虛擬按鈕。該按鈕和按鈕區可以例如對應于菜單、播放、定位、暫停等等。在這個特定的實施例中,上述的方法可包括附加的發生在塊416之前的步驟。例如,如果沒有執行滾動觸擊事件,則用戶接口方法900可包括附加的塊,在該塊處作出有關是否相對于該虛擬滾動輪執行了一個選擇觸擊事件(或手勢)的確定。該選擇觸擊事件可通過敲擊該按鈕或通過在該按鈕上施加增大的或減小的壓力而不是圍繞該虛擬滾動輪的表面旋轉來實現的(參見圖34F和35F)。如果該按鈕是歌曲選擇或回車鍵,則該方法包括另一個塊,在該塊處該歌曲與該選擇器條布置在被選擇的地方的上。也就是說,當虛擬按鈕被敲擊,或否則被選擇,則播放當前被選擇器條覆蓋的歌曲并為了用戶享受而輸出。
應當注意的是,上述的方法并不是限制于滾動穿過歌曲列表。利用之前提及的技術可以滾動穿過任何的媒體項以及任何元素組。例如,在如圖36A~36C所示的照片布局942中,當用戶將他們的手指925放到照片布局942(或者分組)之上時可以出現一個虛擬滾動輪936,并在此后其可被用于移動一個高亮度器944穿過布局942中的各個照片943。舉例來說,照片可以是可使穿過大量圖像更為容易的縮略圖。
圖37是根據本發明的一個實施例的方法950。該方法開始于塊952,在此確定是否檢測到觸擊。如果檢測到觸擊,該方法繼續進行到塊954,在此監視并分析當前的操作條件。該條件可以例如對應于當前的應用、應用的狀態和/或與該觸擊相關的觸擊特性。
如果實現了第一組條件,則該方法繼續進行到塊956,在此激活第一GUI元素。例如,如圖38A-B所示,在音樂管理程序的活動窗口960中,當用戶觸擊了該活動窗口960的播放列表部分964時滾動輪962可被激活。
如果實現了第二組條件,則該方法繼續進行到塊958,在此激活第二GUI元素。例如,如圖38B-C所示,在音樂管理程序的活動窗口960中,當用戶還觸擊了該活動窗口960的邊界968時音樂控制面板966可被激活。盡管它們是相互獨立工作的,如果該第一和第二條件是同時發生的則該第一和第二GUI元素可同時被激活(圖34C)。
在塊956之后,該方法繼續進行到塊960,在此確定是否應當使第一GUI元素無效。如果是,則該方法繼續進行到塊962,在此使該GUI元素無效。例如,如圖38D所示,當在播放列表962之上沒有再檢測到手指925時該第一GUI元素(滾動輪962)被禁止并從顯示屏移除。如果不是,則該方法保持在塊956。
同樣但是獨立地,在塊958之后,該方法繼續進行到塊964,在此確定是否應當使第二GUI元素無效。如果是,則該方法繼續進行到塊966,在此使該GUI元素無效。例如,如圖38E所示,當在邊界968之上沒有再檢測到手指925時該第二GUI元素(控制面板966)被禁止并從顯示屏移除。如果不是,則該方法保持在塊958。
應當注意的是,該方法并不局限于僅僅兩個GUI元素并且如果其它的條件被實現的話可以啟動其它的GUI元素。例如,當第三組條件出現時一個第三GUI元素可被激活,等等。舉例來說,如圖38F所示,用戶可將他們的手指925從活動窗口960的邊界968滑動到菜單部分970由此啟動從控制面板966到滾動輪972的改變(例如,當使第二GUI元素無效時,第三GUI元素被激活)。
此外,如圖38G所示,用戶將另外的手指925增加到當前的觸擊由此啟動從第一控制面板966到第二控制面板982的一個變化。該第一控制面板966可包括諸如播放、停止、定位和音量選項的第一組控制選項,而第二控制面板982可包括諸如歌曲播放順序、歌曲信息、燈光效果選項的第二組控制選項。
此外,如圖38H所示,用戶可放一個手指925A到邊界968之上,另一個手指925B放到菜單部分970之上,而還有另一個手指925C放到播放列表部分964之上,由此特別啟動三個不同的GUI元素控制面板966,用于滾動穿過菜單970的第一滾動輪972,以及用于滾動輪穿過播放列表964的第二滾動輪962。
另外,可在同一個部分中激活多個GUI元素。例如,如圖38I和38J所示,如果在播放列表964中選擇了一個特定的方框990,則可以激活鍵盤992使得用戶能夠輸入與該歌曲有關的數據(例如,標題、藝術家、風格等等)。如果滾動輪962在與鍵盤962相同的時刻被激活,則可最小化滾動輪962以如所示適應鍵盤992。一旦鍵盤992被使得無效,滾動輪962恢復回到其最初的大小。
本發明的各個方面、實施例、實現或特征可單獨或以任何結合形式使用。
本發明優選通過硬件、軟件或者硬件和軟件的結合實現。軟件也可以具體化為計算機可讀介質上的計算機可讀代碼。計算機可讀介質是任何能夠存儲數據并在其后被計算機系統讀取的數據存儲器。計算機可讀介質的實例包括只讀存儲器、隨機存取存儲器、CD-ROM、DVD、磁帶、光數據存儲設備、以及載波。計算機可讀介質也可在網絡聯結的計算機系統之上分布使得計算機可讀代碼以分布式方式被存儲和執行。
雖然已經就幾個優選實施例描述了本發明,存在改變、變更以及等同物,它們都落入本發明的范圍內。例如,盡管本發明主要是針對觸摸屏的,應當注意的是,在某些情況下觸摸板也可用于替代觸摸屏。也可使用其它類型的觸摸感應設備。應當注意的是,存在許多實現本發明的方法和設備的可選方式。因此有意使下面的所附權利要求書被解釋為包含所有的這種改變、變更以及等同物,被看作落入本發明的真正的精神和范圍之內。
權利要求
1.一種用戶接口方法,包括檢測觸擊;當檢測到觸擊時確定用戶接口模式;基于所述用戶接口模式,顯示一個或多個GUI元素;以及啟用所述GUI元素的功能。
2.根據權利要求1所述的用戶接口方法,其中所述用戶接口模式基于一個或多個應用。
3.根據權利要求2所述的用戶接口方法,其中不同的應用指示不同的用戶接口模式。
4.根據權利要求1所述的用戶接口方法,其中所述用戶接口模式基于應用的當前狀態。
5.根據權利要求5所述的用戶接口方法,其中所述應用的不同狀態指示不同的用戶接口模式。
6.根據權利要求1所述的用戶接口方法,其中所述用戶接口模式基于所述檢測到的觸擊的一個或多個觸擊特性。
7.根據權利要求6所述的用戶接口方法,其中所述觸擊的不同特性指示不同的模式。
8.根據權利要求1所述的用戶接口方法,其中所述用戶接口模式僅基于這樣的一個條件,即所述條件從應用、應用的狀態、所述檢測到的觸擊的觸擊特性之中選擇。
9.根據權利要求1所述的用戶接口方法,其中所述用戶接口模式基于多個條件,所述多個條件從一個或多個應用、應用的一個或多個狀態、所述檢測到的觸擊的一個或多個觸擊特性之中選擇。
10.根據權利要求1-9所述的用戶接口方法,其中僅顯示一個GUI元素。
11.根據權利要求1-9所述的用戶接口方法,其中顯示多個GUI元素。
12.根據權利要求1-9所述的用戶接口方法,其中所述用戶接口模式為滾動模式,并且其中所述GUI元素是虛擬滾動輪。
13.根據權利要求1-9所述的用戶接口方法,其中所述用戶接口模式為數據錄入模式,并且其中所述GUI元素是虛擬鍵盤。
14.根據權利要求1-9所述的用戶接口方法,其中所述用戶接口模式為編輯模式,并且其中所述GUI元素是工具條或虛擬鍵盤。
15.根據權利要求1-9所述的用戶接口方法,其中所述用戶接口模式為控制模式,并且其中所述GUI元素是控制面板。
16.根據權利要求1-9所述的用戶接口方法,其中所述用戶接口模式為信息模式,并且其中所述GUI元素是窗口。
17.根據權利要求1-9所述的用戶接口方法,其中所述GUI元素被顯示在之前存在的圖形圖像之上。
18.根據權利要求17所述的用戶接口方法,其中所述GUI元素是半透明的,使得布置在所述GUI元素的下面的所述之前存在的圖形圖像透過所述GUI元素可以被看見。
19.根據權利要求1-9所述的用戶接口方法,其中所述GUI元素被配置用于取代之前存在的圖形圖像。
20.根據權利要求1-9所述的用戶接口方法,其中所述GUI元素被呈現在所述檢測到的觸擊的附近。
21.根據權利要求1-9所述的用戶接口方法,其中所述GUI元素被呈現在預定位置。
22.根據權利要求1-9所述的用戶接口方法,其中顯示所述GUI元素包括實現將所述GUI元素從第一狀態過渡到第二狀態的過渡效果。
23.根據權利要求22所述的用戶接口方法,其中所述過渡效果是從彈出、逐漸增長、或淡入和淡出之中選擇的。
24.根據權利要求22所述的用戶接口方法,其中所述過渡效果的速度基于所述觸擊的壓力。
25.根據權利要求1-9所述的用戶接口方法,其中啟用所述GUI元素包括監視相對于所述GUI元素的觸擊事件,并且執行與所述觸擊事件相關的動作。
26.根據權利要求1-9所述的用戶接口方法,還包括確定是否使所述GUI元素無效,使無效包括禁用所述GUI元素的功能并將所述GUI元素從顯示屏移除。
27.根據權利要求26所述的用戶接口方法,其中當不再檢測到觸擊時使所述GUI元素無效。
28.根據權利要求26所述的用戶接口方法,其中當在預定時間內沒有檢測到觸擊時,使所述GUI元素無效。
29.根據權利要求26所述的用戶接口方法,其中在所述GUI元素被激活了預定時間量之后,使所述GUI元素無效。
30.根據權利要求26所述的用戶接口方法,其中經由用戶選擇使所述GUI元素無效。
31.根據權利要求1-9所述的用戶接口方法,其中顯示所述GUI元素包括實現將所述GUI元素從第一狀態過渡到第二狀態的過渡效果,并且所述移除所述顯示的GUI元素的步驟包括實現將所述GUI元素從所述第二狀態過渡到所述第一狀態的相反的過渡效果。
32.根據權利要求1-9所述的用戶接口方法,其中確定所述用戶接口模式包括確定當前應用;確定所述當前應用的當前狀態;以及確定與所述檢測到的觸擊相關的觸擊特性。
33.一種用于滾動穿過媒體項的方法,所述方法包括顯示多個媒體項;在至少一個所述顯示的媒體項之上檢測觸擊;當在所述顯示的媒體項之上檢測到觸擊時,激活虛擬滾動輪;確定是否執行了相對于所述虛擬滾動輪的觸擊區域的觸擊事件;以及當執行了滾動觸擊事件時,滾動穿過所述媒體項組。
34.根據權利要求33所述的方法,其中激活所述虛擬滾動輪包括顯示并啟用所述虛擬滾動輪的功能,所述虛擬滾動輪提供一個觸擊區域,用戶在此區域轉動他們的手指以便穿過所述媒體項組。
35.根據權利要求34所述的方法,還包括當沒有執行觸擊事件時使所述虛擬滾動輪無效,使所述虛擬滾動輪無效包括禁用所述虛擬滾動輪的功能并將所述虛擬滾動輪從顯示屏移除。
36.根據權利要求35所述的方法,其中使用當被顯示時將所述虛擬滾動輪從第一狀態過渡到第二狀態,以及當被移除時將所述虛擬滾動輪從所述第二狀態過渡到所述第一狀態的過渡效果,將所述虛擬滾動輪顯示到顯示屏或從顯示屏移除。
37.根據權利要求34所述的方法,其中使用將所述虛擬滾動輪從第一狀態過渡到第二狀態的過渡效果,顯示所述虛擬滾動輪。
38.根據權利要求34所述的方法,其中所述過渡效果促使所述虛擬滾動輪增大,最初顯示一個較小的虛擬滾動輪,并在此后持續增大所述虛擬滾動輪,直到所述虛擬滾動輪達到最終尺寸。
39.根據權利要求34、37和38所述的方法,其中在所述多個媒體項之上顯示所述虛擬滾動輪,并且所述虛擬滾動輪是半透明的,使得布置在所述虛擬滾動輪的下面的所述多個媒體項透過所述虛擬滾動輪可以被看見。
40.根據權利要求33-39所述的方法,其中滾動包括根據發生在所述虛擬滾動輪上的所述觸擊事件,將選擇器條線性穿過所述媒體項組。
41.根據權利要求33-40所述的方法,其中所述虛擬滾動輪提供一個或多個虛擬按鈕,并且其中所述方法還包括確定是否執行了相對于所述虛擬滾動輪的所述一個或多個虛擬按鈕的選擇觸擊事件;以及當在特定的按鈕上執行了所述選擇觸擊事件時,實現與所述特定按鈕相關的動作。
42.根據權利要求41所述的方法,其中所述一個或多個虛擬按鈕至少包括由所述觸擊區域圍繞的中心按鈕。
43.根據權利要求42所述的方法,其中所述虛擬滾動輪是圓形。
44.根據權利要求33-40所述的方法,其中確定是否執行了相對于所述虛擬滾動輪的所述觸擊區域的觸擊事件的所述步驟包括檢測至少一個手指出現在所述觸擊區域之上;設置所述手指的初始位置;以及監視手指相對于所述初始位置的移動。
45.根據權利要求33-40所述的方法,其中所述媒體項是歌曲列表。
46.一種在具有顯示屏和觸摸屏的用戶操作的電子設備上執行的方法,所述方法包括確定是否檢測到觸擊;當檢測到觸擊時,監視和分析當前的操作條件;針對第一組操作條件激活第一GUI元素;以及針對第二組操作條件激活第二GUI元素。
47.一種在具有顯示屏和觸摸感應輸入設備的計算設備上執行的方法,所述方法包括感應觸擊;當檢測到觸擊時顯示并啟用GUI元素,所述GUI元素基于至少下列的其中之一(a)所述計算設備上當前運行的應用;(b)所述應用的當前狀態;(c)所述觸擊的一個或多個特性,所述特性包括觸擊位置,觸擊ID,觸擊次數,觸擊運動;當下列事件的其中之一發生時禁用并從顯示屏移除所述GUI元素(a)沒有再檢測到所述觸擊,(b)預定時間內沒有檢測到觸擊,(c)自顯示和啟動步驟以來已過去預定量的時間,(d)用戶選擇。
48.一種計算系統,包括配置用于顯示圖形用戶界面的顯示設備;安置在所述顯示設備之上的觸摸屏,所述觸摸屏被配置用于檢測發生在所述顯示設備之上的觸擊;以及可操作地連接到所述顯示設備和所述觸摸屏的處理器,所述處理器響應觸擊,指示所述顯示設備顯示一個或多個GUI元素,并且當相對于所述顯示的GUI元素檢測到觸擊事件時,執行與所述GUI元素相關的動作。
49.根據權利要求48所述的系統,其中所述處理器被配置用于響應所述觸擊確定用戶接口模式,所述用戶接口模式具有與之相關的能夠被顯示的一個或多個GUI元素,所述用戶接口模式基于當前應用、所述應用的當前狀態以及與所述觸擊相關的觸擊特性的至少其中之一。
50.一種計算設備,包括處理器;能夠感應觸擊事件的觸摸屏;以及配置用于同時顯示多個媒體項和虛擬滾動輪的顯示屏,所述虛擬滾動輪提供一個觸擊區域,在此區域執行觸擊事件以便實現滾動動作,所述滾動動作允許用戶穿過所述多個媒體項。
51.一種用于經由觸敏設備啟動浮動控制的計算機實現的方法,所述方法包括檢測在所述觸敏設備上存在對象;識別所述對象;以及基于所述識別的對象,在所述對象的附近在所述觸摸屏上生成用戶接口元素。
52.根據權利要求51所述的方法,其中所述用戶接口元素包括一個或多個可被所述觸敏設備的用戶選擇的控制選項。
53.根據權利要求52所述的方法,還包括當所述對象選擇了所述控制選項的其中之一時生成控制信號。
54.根據權利要求53所述的方法,其中所述控制信號修改所述計算機的功能。
55.根據權利要求53所述的方法,其中所述控制信號修改用戶接口元素。
56.根據權利要求51-55所述的方法,其中所述對象是手指或指示筆。
57.一種計算機實現的方法,包括呈現虛擬輪;檢測所述虛擬輪之上的至少第一個手指;使所述手指與所述虛擬輪相關;以及當所述手指在所述虛擬輪附近移動時生成控制信號。
58.根據權利要求57所述的方法,還包括當所述手指在所述虛擬輪附近移動時旋轉所述呈現的虛擬輪。
59.根據權利要求57所述的方法,其中所述控制信號實現顯示屏上的滾動。
全文摘要
本發明公開了一種用戶接口方法。所述方法包括檢測觸擊并在當檢測到觸擊時確定用戶接口模式。所述方法還包括基于所述用戶接口模式,并響應所述檢測到的觸擊,激活一個或多個GUI元素。
文檔編號G06F3/041GK101052939SQ200580029108
公開日2007年10月10日 申請日期2005年7月19日 優先權日2004年7月30日
發明者史蒂夫·霍特林, 喬舒亞·A·斯特里肯, 布賴恩·Q·赫普, 杜肯·R·克爾, 伊姆蘭·喬德里, 格萊格·克里斯蒂, 喬納蘭·P·艾夫, 巴斯·奧丁 申請人:蘋果電腦有限公司