用于應(yīng)用實體的3D用戶接口
背景技術(shù):為了幫助用戶管理和訪問安裝在計算設(shè)備上的應(yīng)用,各種類型的用戶接口被設(shè)計出來。典型地,采用圖標來表示應(yīng)用。所述圖標顯示在文件夾、屏幕和其它二維版式中。用戶常常能夠移動圖標、消除圖標、指定圖標位置等等。當應(yīng)用被安裝或添加到shell(殼)或環(huán)境中時,該應(yīng)用的圖標或圖形通常按照簡單的原則來放置,例如文件夾中的下一個可用的地方、列表中按照字母順序的方位、用戶指定的位置等。這樣的有時被稱作shell或環(huán)境的用戶接口可能會缺乏效率、便利性和美感。例如,二維圖形shell可以顯示應(yīng)用圖標的頁面。但可能不會提示當前頁附近的內(nèi)容、所表示的應(yīng)用可以具有什么頁面或要素、或者應(yīng)用可以具有什么顯示要素。同樣考慮到,各種導航操作可能會是生硬的。例如,為了瀏覽下一頁或應(yīng)用圖標的集合,可能要呈現(xiàn)整個新頁面。新顯示的圖標可能與之前顯示的圖標沒有任何關(guān)系,需要用戶對新的信息完全重新定位。最終,組織可能會被限制在對諸如文件夾之類的容器費力的手動構(gòu)造和安排中。下文將討論涉及三維用戶接口,特別是涉及管理和訪問計算設(shè)備中的應(yīng)用的技術(shù)。
技術(shù)實現(xiàn)要素:包含下面的發(fā)明內(nèi)容僅僅是為了介紹之后的詳細描述中討論的某些概念。本發(fā)明內(nèi)容并不是全面的,也不是出于描繪要求保護的主題的范圍的目的,要求保護的主題的范圍將在最后出現(xiàn)的權(quán)利要求中加以闡明。實施例涉及用于管理和訪問應(yīng)用的三維用戶接口。應(yīng)用被存儲在設(shè)備的存儲器中。用戶接口顯示在顯示器上。該用戶接口包含多個可交互式旋轉(zhuǎn)的三維結(jié)構(gòu),每個三維結(jié)構(gòu)包括多個區(qū)域,每個區(qū)域顯示表示對應(yīng)應(yīng)用的圖形,該應(yīng)用可以通過與三維結(jié)構(gòu)之間的交互作用被激活。應(yīng)用能夠被手動地或者自動地分配給結(jié)構(gòu)(體結(jié)構(gòu)(volume))。該三維結(jié)構(gòu)可以被旋轉(zhuǎn),以及以其它方式被用戶輸入操縱。許多伴隨的特征將在下文中通過參考結(jié)合了附圖的下列詳細描述加以解釋。附圖說明下面的按照附圖閱讀的詳細描述將使當前的描述變得更加容易理解,其中在隨附的描述中類似的附圖標記用于指定類似的部分。圖1示出了三維用戶接口的一些實例。圖2示出了可以被用于實現(xiàn)此處所描述的實施例的設(shè)計。圖3示出了其上可以實施此處描述的實施例的計算設(shè)備。圖4示出了元數(shù)據(jù)的實例。圖5示出了向立方體和面分配應(yīng)用和子應(yīng)用的過程。圖6示出了處理與三維用戶接口之間交互作用的過程。圖7示出了第一個用戶接口的詳細視圖。圖8示出了第二個用戶接口的詳細視圖。圖9示出了第二個用戶接口的另一種實現(xiàn)方式。圖10示出了用于分層次嵌套和導航的實施例。具體實施方式圖1示出了三維用戶接口的一些實例100、102、104、106。此處使用的基本概念是具有面的三維體結(jié)構(gòu)。體結(jié)構(gòu)或它的面可以對應(yīng)于其應(yīng)用或要素(子應(yīng)用),并在其上顯示適當?shù)膱D標或圖形表示。體結(jié)構(gòu)可以是任何三維體形狀,例如金字塔、立方體、任何多面體等。當被顯示時,該體結(jié)構(gòu)可以具有圖形化的面和邊緣,或可替換地,具有透明的或半透明的面和/或邊緣(或者沒有邊緣)。例如,圖標可以被安排為“漂浮”在與十二面體的面對應(yīng)的三維位置上,但是實際的面可以被示出,或者可以不被示出。體結(jié)構(gòu)同樣可以是作為單個結(jié)構(gòu)單元被顯示和操縱的平面區(qū)域的群組(可能是不規(guī)則的或非對稱的,劃定出三維空間邊界)。由于“體結(jié)構(gòu)”的含義已被理解,為了解釋的目的,此處將使用示例性的體結(jié)構(gòu)——立方體。在術(shù)語“立方體”被使用的地方,術(shù)語“體結(jié)構(gòu)”也同樣被認為是可適用的。簡而言之,體結(jié)構(gòu)的形狀和外觀可以不同,這對于此處描述的實施例并不重要。圖1示出了第一個立方體100。第一個立方體100具有顯示圖標110的面108。虛線箭頭指示出第一個立方體100通過用戶輸入被交互式旋轉(zhuǎn)的能力。環(huán)繞第一個立方體100的盒子表示窗口、包含立方體的面、顯示區(qū)、顯示器等。第一個立方體100的實例是立方體對應(yīng)單個應(yīng)用、圖標110表示該應(yīng)用的離散要素的情況。這些離散要素(此處被稱作“子應(yīng)用”)例如可以是接口對話、對應(yīng)于該應(yīng)用的文件、菜單、相關(guān)數(shù)據(jù)(例如呼叫記錄)、配置設(shè)置等。例如,如果該應(yīng)用是萬維網(wǎng)瀏覽器,一個面108可以包含用于“喜愛的”統(tǒng)一資源定位符(URL)集合的圖標、一個面108可以具有表示帶有用于頁面的標簽的主窗口的圖標等。圖1中的第二個立方體102是體結(jié)構(gòu)的面含有多個應(yīng)用(表示應(yīng)用的圖標/圖形)的實例。第二個立方體102同樣可以與之交互、被旋轉(zhuǎn)和作為啟動其上表示的應(yīng)用的點來使用。正如之后參考圖10描述的,假定第一個立方體100的應(yīng)用對應(yīng)于第二個立方體102上表示的應(yīng)用(例如“App1”),用戶可以在第一個立方體100和第二個立方體102之間來回導航。用于“App1”的圖標可以在第二個立方體102上被用戶選擇,這導致圖形轉(zhuǎn)變到第一個立方體100上。相反地,用戶命令可以導致用戶接口從第一個立方體100圖形轉(zhuǎn)變到第二個立方體102。轉(zhuǎn)變可以涉及示出了立方體上被選擇的面移動占據(jù)當前視圖的動畫,或者被取消選擇的面在視圖中被其立方體取代的動畫。Shell或用戶接口同樣可以顯示立方體更高層次的復合視圖。第一個用戶接口104包括可以與第一個立方體100和/或第二個立方體102相似的立方體(或甚至類似于第二個用戶接口106中所示的立方體)。正如之后參考圖10描述的,用戶可以在用戶接口104和第一個立方體100(或第二個立方體102)之間來回導航。例如,當?shù)谝粋€立方體100在第一個用戶接口104中被選擇時,該用戶接口從顯示第一個用戶接口104圖形轉(zhuǎn)變到顯示第一個立方體100。用戶可以向后導航至第一個用戶接口104。第一個用戶接口104的細節(jié)將在下文中參考圖7加以討論。在另一個實施例中,復合視圖其本身是一個立方體,如第二個用戶接口106所示。應(yīng)當指出的是第二個用戶接口106中的圖標可以用體結(jié)構(gòu)代替,如圖9所示。圖2示出了可以被用于實現(xiàn)此處所描述的實施例的設(shè)計。假定具有處理器、存儲器和顯示器的計算設(shè)備,用戶接口120(或視圖)被顯示在顯示器上。控制過程122通過處理器被執(zhí)行。元數(shù)據(jù)124(或模型)通過控制過程122被存儲和使用。用戶接口或視圖120可以是此處描述的任何實施例??刂七^程122可以完成多種功能,例如處理用戶輸入、實現(xiàn)用戶接口邏輯、管理向立方體和面分配應(yīng)用和子應(yīng)用、響應(yīng)來自用戶接口要素的事件等等。元數(shù)據(jù)124可以是關(guān)于用戶接口或視圖120的狀態(tài)和配置的信息、關(guān)于應(yīng)用的信息、用戶偏好和設(shè)置等。圖3示出了其上可以實施此處描述的實施例的計算設(shè)備140。計算設(shè)備140可以具有其上顯示了用戶接口120和其用戶接口要素144(例如立方體、面、彈出菜單、動畫、按鈕等)的顯示器142。計算設(shè)備140同樣具有處理器146來執(zhí)行控制過程122和安裝在操作系統(tǒng)150上的應(yīng)用148。除了存儲操作系統(tǒng)150和應(yīng)用148外,存儲器152還存儲元數(shù)據(jù)124。圖4示出了元數(shù)據(jù)124的實例。盡管以表格形式示出,但是元數(shù)據(jù)124可以被存儲為小型數(shù)據(jù)庫、XML(可擴展標記語言)文件、序列化對象等。元數(shù)據(jù)124可以具有識別應(yīng)用的識別符(例如“1”),若有子應(yīng)用,則同樣可以具有識別子應(yīng)用的識別符(例如“1.1”)。應(yīng)用可以與多種標簽相關(guān)聯(lián)來描述應(yīng)用的屬性,盡管關(guān)于應(yīng)用的屬性和信息可以從其它來源得到。分配數(shù)據(jù)可以指示應(yīng)用或子應(yīng)用與哪些立方體或面相關(guān)聯(lián)。應(yīng)用或子應(yīng)用可以具有多于一個的關(guān)聯(lián),可以被手動地或自動地分配。手動分配可以涉及當安裝應(yīng)用時指示目標立方體或面、拖動應(yīng)用圖標或其副本到目標面或立方體等等。當進行手動分配時,在元數(shù)據(jù)124中進行對應(yīng)的更新。自動分配可以以若干方式完成。如果立方體或面具有一個或更多標簽,具有匹配標簽的應(yīng)用或子應(yīng)用可以被相應(yīng)地分配。一些標簽可以具有更高的優(yōu)先級。例如,如果有立方體被加以“照片”標簽,被標記為“照片”或關(guān)于“照片”的應(yīng)用可以被分配給該立方體。如果應(yīng)用不具有標簽,其它數(shù)據(jù)可以被用于自動分配,例如安裝日期、哪些立方體/面具有開放空間等。應(yīng)當指出的是,用戶評級可以被分配給應(yīng)用,應(yīng)用可以被分配以便歸組到立方體上從而反映用戶的偏好應(yīng)用。在一個實施例中,手動用戶分配優(yōu)先,而在另一個實施例中,應(yīng)用被表示在任何其被分配到的立方體或面上,不論是被自動分配還是被手動分配。圖5示出了向立方體和面分配應(yīng)用和子應(yīng)用的過程。首先,在步驟170,存在有呈現(xiàn)、刷新或?qū)嵗S用戶接口的請求。在步驟172訪問元數(shù)據(jù)124和關(guān)于哪些應(yīng)用被安裝(應(yīng)用識別符)以及存在哪些立方體和面的信息(例如立方體框架或軟件對象)。在步驟174該過程可以執(zhí)行自動分配的算法。關(guān)于該應(yīng)用的標簽和其它信息被用于自動分配。如果使用子應(yīng)用,則在步驟176子應(yīng)用可以被類似地分配到應(yīng)用面。自動分配可以被記錄在存儲的元數(shù)據(jù)124中。當確定了分配時,包含可能地確認來自元數(shù)據(jù)的手動分配,該用戶接口能夠通過其中具有相對應(yīng)地分配的應(yīng)用圖標的一個立方體或多個立方體顯示出來。圖6示出了處理與三維用戶接口之間交互作用的過程。在步驟200接收到輸入,輸入采用例如擊打鍵盤、敲擊、聲音命令、傾斜計算設(shè)備(假定存在有陀螺儀、加速度計)、點擊鼠標或按鈕等形式。在步驟202根據(jù)當前用戶接口的狀態(tài)來分析該輸入,并確定合適的動作。在步驟204該動作被執(zhí)行?,F(xiàn)在將對實例輸入和動作進行描述。立方體的旋轉(zhuǎn)能夠由敲擊輸入起動;例如敲擊面的角或邊緣可以導致立方體在對應(yīng)的平面上旋轉(zhuǎn)從而將一個或更多新的面帶到視圖中。旋轉(zhuǎn)可以在對應(yīng)劃動或拖動的方向上并在最接近的平面內(nèi)或在任意平面內(nèi)被起動。旋轉(zhuǎn)的方向可以根據(jù)劃動手指的數(shù)量,而與手指劃動的方向無關(guān),例如,兩個手指則上下旋轉(zhuǎn),三個手指則左右旋轉(zhuǎn)。可以使用任何類型的輸入。該用戶接口可以具有不同的輸入模式。第一個輸入模式可以將用戶輸入引導到旋轉(zhuǎn)操作,而第二個模式可以將用戶輸入引導到導航操作,例如選擇父立方體或孩子立方體、選擇面、激活應(yīng)用圖標等等。第三個輸入可以將用戶輸入引導到應(yīng)用本身。輸入的持續(xù)時間可以影響旋轉(zhuǎn)的程度。由于立方體的旋轉(zhuǎn),立方體可以卡入多種預定的方位中。在一個通?;蚩偸峭瑫r顯示體結(jié)構(gòu)的多個面的實施例中,旋轉(zhuǎn)可以移動多個面離開和進入視圖中。在立方體的情況下,用戶設(shè)置或特定輸入可以導致立方體旋轉(zhuǎn)兩次。在另一個實施例中,用戶輸入調(diào)用“翻轉(zhuǎn)”動作,該動作將立方體或體結(jié)構(gòu)旋轉(zhuǎn)180度。在立方體的情況下,如果同時顯示了三個面,翻轉(zhuǎn)導致后面的三個面變成前面的三個面。在另一個實施例中,旋轉(zhuǎn)可以部分根據(jù)設(shè)備的方位來確定。而在另外的一個實施例中,可以調(diào)用隨機自旋(spin)(例如通過搖晃運動傳感設(shè)備);旋轉(zhuǎn)的方向或程度都可以是隨機的。如果顯示了多個立方體,不同立方體可以在不同方向上自旋,并持續(xù)不同的時間(旋轉(zhuǎn)角度)。圖7示出了第一個用戶接口104的詳細視圖,它是立方體100/102的復合視圖。上述的交互作用(例如旋轉(zhuǎn)、導航)同樣能夠應(yīng)用于用戶接口104。也就是說,用戶可以一同操縱多個立方體,就像操縱個別立方體一樣。例如,如果用戶提供用于“向左旋轉(zhuǎn)”動作的輸入,所有的立方體100/102都協(xié)調(diào)一致地向左旋轉(zhuǎn)或轉(zhuǎn)動??商鎿Q地,用戶可以選擇立方體100/102的子集旋轉(zhuǎn),例如,通過選擇具有指定特質(zhì)或標簽的立方體、拖動用戶接口的區(qū)域等。當顯示多個立方體時,用戶接口可以允許用戶添加新的立方體、拖曳立方體、移動立方體、復制立方體、刪除立方體、固定/取消固定立方體、歸組或取消歸組立方體??梢蕴峁┧阉鞴ぞ邅碓试S用戶搜索應(yīng)用,在這種情況下立方體可以自動旋轉(zhuǎn)來示出具有與搜索匹配的應(yīng)用的面。具有匹配的應(yīng)用的立方體同樣可以被拖曳到用戶接口的頂部或復制到結(jié)果立方體中。在一個實施例中,能夠被包含在一個面(或立方體)上的應(yīng)用或子應(yīng)用的數(shù)量對于用戶是可配置的。因此,能夠主動包含應(yīng)用或子應(yīng)用的面的數(shù)量在設(shè)定階段是可配置的,或是動態(tài)可配置的。圖8示出了第二個用戶接口106的詳細視圖,是另一個復合視圖。在該實施例中,父立方體或容器立方體在每個面上都包含多個應(yīng)用圖標110。圖標110可以在面和/或其它立方體(如果存在多個立方體)之間被移動、拷貝等。圖標可以被激活,從而導致或者直接轉(zhuǎn)變到對應(yīng)的應(yīng)用(二維),或者轉(zhuǎn)變到對應(yīng)的應(yīng)用立方體。圖9示出了第二個用戶接口106的另一種實現(xiàn)方式。在該實施例中,父立方體220充當在其面上或接近其面的地方具有孩子立方體222的容器。父立方體220可以作為如上所述的立方體被旋轉(zhuǎn)和操縱。所包含的子立方體同樣可以在該更大的立方體旋轉(zhuǎn)時同步地旋轉(zhuǎn),因此允許產(chǎn)生一種效應(yīng),例如在更大的包含立方體旋轉(zhuǎn)時,保持子立方體相同的面面向用戶。孩子或子立方體222可以作為一個整體或單獨地被旋轉(zhuǎn)和與之交互作用。圖10示出了用于分層次嵌套(hierarchicalnesting)和導航的實施例??梢约俣ㄌ峁┝⒎襟w層次安排(嵌套)(容器-內(nèi)容物關(guān)系的層次)的信息得到了維持。例如,第一個用戶接口104充當根視圖,其中包含有立方體100/102(根視圖同樣可能是此處描述的另一種類型的復合視圖)。應(yīng)當指出的是,用戶接口104可能是另一個復合視圖的孩子而非根視圖。用戶通過第一個輸入250向下導航該層次來選擇立方體252。之后立方體252被轉(zhuǎn)變到視圖中(例如通過放大并使所選擇的立方體252居中的動畫)。當面254被第二個輸入256選擇時,對應(yīng)的應(yīng)用258變?yōu)榛钴S視圖。類似地,用戶接口能夠向上往回導航該層次。第三個輸入260將視圖從應(yīng)用258的視圖轉(zhuǎn)變到立方體252,第四個輸入262將視圖從立方體252轉(zhuǎn)變?yōu)榈谝粋€用戶接口104。使用對應(yīng)的用戶輸入,導航同樣可以從立方體到立方體。例如,用戶可以依次從一個立方體導航到邏輯上的下一個立方體,具有對應(yīng)的圖形轉(zhuǎn)變。在一個實施例中,可能的交互作用深度可以改變。換句話說,用戶能夠與之交互作用的實體可以改變。例如,應(yīng)用的圖標可以是實際應(yīng)用的微型化縮略圖,用戶能夠通過其圖標直接將輸入引導到潛在的應(yīng)用。不論應(yīng)用的圖標是顯示在單個立方圖視圖中還是顯示在立方體復合視圖中,都可以使用該方法。在另一個實施例中,如果應(yīng)用只具有一個用戶接口要素,例如主窗口(無子應(yīng)用),該應(yīng)用在普通的二維樣式中顯示。如果該應(yīng)用在執(zhí)行時碰巧創(chuàng)建了子應(yīng)用,用戶接口能夠自動地轉(zhuǎn)變到具有用于該子應(yīng)用的新的面的立方體視圖。關(guān)于立方體和面的動態(tài)添加,可以使用體結(jié)構(gòu)的面的數(shù)量動態(tài)變化的實施例。當體結(jié)構(gòu)變形為新的多面體或其它形狀時可以添加面。同樣,立方體可以動態(tài)地增長和收縮來適應(yīng)應(yīng)用或子應(yīng)用的新的圖標。而且,立方體或它們的面可以由用戶手動改變尺寸。盡管已經(jīng)討論了面和立方體之間拖動或拷貝圖標的行為,用戶接口同樣可以被設(shè)計為允許用戶在立方體之間移動/拷貝立方體的面本身。盡管導航通常是由用戶輸入來控制的,例如來電、軟件更新、警報和其它的設(shè)備事件也能夠觸發(fā)導航事件以便將特定的面或立方體帶到前面。另一個實施例可以涉及將一個或更多立方體的狀態(tài)保存到例如云、萬維網(wǎng)服務(wù)等的網(wǎng)絡(luò)資源中。立方體的狀態(tài)和它對應(yīng)的應(yīng)用狀態(tài)能夠被捕捉并存儲在網(wǎng)絡(luò)資源中。狀態(tài)可以包含關(guān)于哪些應(yīng)用或子應(yīng)用與哪些立方體和/或立方體的面相關(guān)聯(lián)、應(yīng)用處于什么狀態(tài)、什么文件或其它應(yīng)用數(shù)據(jù)處于使用中等等的信息。存儲在網(wǎng)絡(luò)云中的立方體狀態(tài)同樣可以被裝載到另一個設(shè)備中,因此允許將立方體從一個設(shè)備映像或再現(xiàn)到另一個設(shè)備。在進一步的實施例中,用戶與立方體的交互作用同時控制與該立方體相關(guān)聯(lián)地執(zhí)行的應(yīng)用。例如,視頻應(yīng)用的立方體可以具有在相應(yīng)表面上播放的視頻片段。當用戶從一個面旋轉(zhuǎn)到另一個面時,只有當前面向前方或活躍的面上的視頻片段被播放,而在其它面上的視頻片段進入緩沖狀態(tài)。在另一個實例中,映射(mapping)程序可以具有根據(jù)該面是否在焦點上或當前是否被顯示而處于活躍和休眠狀態(tài)的面。結(jié)論以上討論的實施例和特征能夠以存儲在易失性或非易失性計算機或設(shè)備可讀存儲介質(zhì)中的信息的形式加以實現(xiàn)。正如此處所使用的,“介質(zhì)”或“媒介”應(yīng)被視作排除了能量、信號、載波和類似物。這些術(shù)語應(yīng)該被視作至少包含例如光學存儲器(例如壓縮光盤只讀存儲器(CD-ROM))、磁性介質(zhì)、閃存只讀存儲器(ROM)的介質(zhì),或任何目前或?qū)砝梦锢聿牧洗鎯?shù)字信息的手段。存儲的信息的形式可以是機器可執(zhí)行指令(例如編譯后的可執(zhí)行二進制代碼)、源代碼、字節(jié)碼或任何其它能夠用于使得計算設(shè)備能夠或配置計算設(shè)備完成上述多個實施例的信息。這同樣應(yīng)被視作至少包含易失性內(nèi)存,例如隨機存取存儲器(RAM)和/或操作系統(tǒng)虛擬內(nèi)存,在執(zhí)行實現(xiàn)實施例的程序時其存儲了諸如中央處理單元(CPU)指令之類的信息,同樣包括非易失性介質(zhì),其存儲允許程序或可執(zhí)行指令被裝載和執(zhí)行的信息。實施例和特征能夠在任何類型的計算設(shè)備中完成,包括便攜式設(shè)備、工作站、服務(wù)器、移動無線設(shè)備等等。