手勢控制分為觸發(fā)動(dòng)作(Touch Mechanics,用戶手指在屏幕上如何動(dòng)作)和觸發(fā)行為(Touch Activities,界面上特定動(dòng)作在特定情境下引發(fā)的結(jié)果)。
這是因?yàn)橥瑯拥挠|發(fā)動(dòng)作(如單次觸擊)在不同情境下可能會(huì)帶來不同的結(jié)果(如輕觸,取消,開啟/關(guān)閉指示),同樣單次觸發(fā)行為(如放大)可能是由多種觸發(fā)動(dòng)作(如捏放,雙次觸擊,雙次觸擊拖拽等)實(shí)現(xiàn)。
觸發(fā)動(dòng)作是用戶的手指在界面上做了什么。
http://wiki.jikexueyuan.com/project/material-design/images/patterns-gestures-gestures-touch_large_mdpi.png" alt="gestures-touch" />
單次觸擊(Touch)
一只手指按下,提起
例如:選擇
http://wiki.jikexueyuan.com/project/material-design/images/patterns-gestures-gestures-double-touch_large_mdpi.png" alt="gestures-double-touch" />
雙次觸擊(Double Touch)
兩只手指按下,提起,其中一只手指按下,提起
例如:放大
http://wiki.jikexueyuan.com/project/material-design/images/patterns-gestures-gestures-swipe_large_mdpi.png" alt="gestures-swipe" />
拖拽(Drag),輕滑(Swipe)和快擲(Fling)
一只手指按下,移動(dòng)再提起
例如取消,輕滑,傾斜
http://wiki.jikexueyuan.com/project/material-design/images/patterns-gestures-gestures-long-press_large_mdpi.png" alt="gesture-long-press" />
長按
一只手指按下,稍后再提起
例如:選中一個(gè)元素,比如列表中的一個(gè)項(xiàng)目
http://wiki.jikexueyuan.com/project/material-design/images/patterns-gestures-gestures-long-press-drag_large_mdpi.png" alt="gestures-long-press-drag" />
長按拖動(dòng)
一只手指按下后稍后,移動(dòng),再提起
如:選擇后移動(dòng)某項(xiàng),或是選擇多項(xiàng)
http://wiki.jikexueyuan.com/project/material-design/images/Patterns-Gestures-TouchMechanics-6-Long-press-drag_large_mdpi.png" alt="gestures-double-touch-drag" />
雙觸拖動(dòng)
一只手指按下后提起,再按下后,拖動(dòng),再提起
例如:放大,縮小
http://wiki.jikexueyuan.com/project/material-design/images/patterns-gestures-gestures-pinch-open_large_mdpi.png" alt="gestures-pinch-open" />
捏放(Pinch Open)
雙指按下,向外移動(dòng),再提起
例如:放大
http://wiki.jikexueyuan.com/project/material-design/images/patterns-gestures-gestures-pinch-closed_large_mdpi.png" alt="gestures-pinch-closed" />
捏合
雙指按下,向內(nèi)移動(dòng),再提起
例如:縮小
http://wiki.jikexueyuan.com/project/material-design/images/patterns-gestures-gestures-two-finger-touch_large_mdpi.png" alt="gestures-two-finger-touch" />
雙指觸擊
雙指快速按下,提起
例如:縮小
http://wiki.jikexueyuan.com/project/material-design/images/patterns-gestures-gestures-two-finger-swipe_large_mdpi.png" alt="gestures-two-finger-swipe" />
雙指拖拽,輕滑和快擲
兩指按下,移動(dòng)后提起
例如:選擇多項(xiàng)條目,平移(Pan),傾斜(Tilt)
http://wiki.jikexueyuan.com/project/material-design/images/patterns-gestures-gestures-two-finger-long-press_large_mdpi.png" alt="gestures-two-finger-long-press" />
雙指長按
雙指按下,稍后提起
例如:暫無
http://wiki.jikexueyuan.com/project/material-design/images/patterns-gestures-gestures-two-finger-long-press-drag_large_mdpi.png" alt="gestures-two-finger-long-press-drag" />
雙指長按拖動(dòng)
雙指按下,稍后移動(dòng),再提起
例如:選擇后移動(dòng)
http://wiki.jikexueyuan.com/project/material-design/images/patterns-gestures-gestures-two-finger-double-touch_large_mdpi.png" alt="gestures-two-finger-double-touch" />
雙指雙次觸擊
雙指快速按下提起,重復(fù)一次該動(dòng)作
例如:縮小
http://wiki.jikexueyuan.com/project/material-design/images/patterns-gestures-gestures-rotate_large_mdpi.png" alt="gestures-rotate" />
旋轉(zhuǎn)
雙指按下,以指間中點(diǎn)為圓心快速轉(zhuǎn)動(dòng),再提起
例如:在地圖中旋轉(zhuǎn)內(nèi)容
界面上特定動(dòng)作在特定情境下引發(fā)的結(jié)果。
點(diǎn)觸(Tap)
激活屏幕內(nèi)的元素,像是一個(gè)按鈕。
觸發(fā)動(dòng)作:單次觸擊
取消或退出(Cancel or Escape)
取消或退出當(dāng)前任務(wù),如對話框或菜單。
觸發(fā)動(dòng)作:單次觸擊
開啟/關(guān)閉指示(Enable/Disable lights out)
隱藏或顯示一個(gè)窗口。
觸發(fā)動(dòng)作:單次觸擊
拖拽(Drag),輕滑(Swipe)和快擲(Fling)
請閱讀文章的下半部分來詳細(xì)區(qū)別滾動(dòng),滾動(dòng),滾動(dòng)顯示,平移,取消,拉拽刷新,從邊緣滑動(dòng),頁面滑動(dòng)等的不同。
觸發(fā)動(dòng)作:拖拽,輕滑,或快擲
內(nèi)容選擇(Data selection )(當(dāng)前沒有選中項(xiàng)時(shí))
選擇某個(gè)元件
觸發(fā)動(dòng)作:長按,雙指單次觸擊
內(nèi)容選擇(已有項(xiàng)目被選中時(shí))
在選擇狀態(tài)下,選擇更多的元件。可以和任何其他單指或雙指手指結(jié)合使用。
觸發(fā)動(dòng)作:長按,雙指觸擊
多項(xiàng)內(nèi)容選中拖拽(Data multi-selection drag)
拖拽時(shí)從拖拽起點(diǎn)顯示選擇框。選擇框的高度和寬度可以根據(jù)手指位置進(jìn)行調(diào)整。手指提起瞬間選擇框的尺寸最終尺寸。
觸發(fā)動(dòng)作:雙指滑動(dòng)或拖拽,在沒有項(xiàng)目選中時(shí)長按拖動(dòng)
選擇后移動(dòng) (Pick up and Move)
對于已選的單個(gè)或多個(gè)項(xiàng)目生效??捎糜冢?
放大(Zoom in)
將內(nèi)容的尺寸放大。
觸發(fā)動(dòng)作:
放大至合適(Zoom in to fit)
作用于內(nèi)置圖(nested views),將圖片從最小尺寸放大到合適。
觸發(fā)動(dòng)作:雙次觸擊
縮?。╖oom out)
將內(nèi)容的尺寸縮小。
觸發(fā)動(dòng)作:
展開(Expand)
展開被折疊了的內(nèi)容。
觸發(fā)動(dòng)作:捏放
折疊(Collapse)
折疊被展開的內(nèi)容。
觸發(fā)動(dòng)作:捏合
旋轉(zhuǎn) (Rotate)
旋轉(zhuǎn)目標(biāo)內(nèi)容。
觸發(fā)動(dòng)作:旋轉(zhuǎn)
由于滑動(dòng)的觸發(fā)行為可能因?yàn)榛瑒?dòng)時(shí)情景的不同而大不相同,這里將對一些主要的滑動(dòng)手勢和他們的區(qū)別進(jìn)行描述。
手勢的速率(由小至大)是拖拽,輕滑和快擲的主要區(qū)別。根據(jù)使用的情景,手勢的速率會(huì)產(chǎn)生不同的效果:
滑動(dòng)結(jié)束時(shí)速率大并且被作用元件的速率達(dá)到某個(gè)閥值,這樣的滑動(dòng)就是快擲。
通常手勢的速率會(huì)決定該動(dòng)作在超過一定范圍時(shí)是否可逆:一次拖拽行為中手指會(huì)和元件保持接觸,而反向操作會(huì)將元件拖回到原位;一次快擲行為會(huì)在達(dá)到閥值時(shí)與元件脫離接觸,此時(shí)不可逆。
對主題內(nèi)容水平或垂直方向的滑動(dòng)。
滑動(dòng)的程度根據(jù)手勢的速度來決定: 拖拽(慢)VS 輕滑 VS 拋擲 fling(快)。
通常情況下:
反向滾動(dòng)可以快速顯示在這個(gè)應(yīng)用里隱藏的元件。比如在chome瀏覽器里,向上滾動(dòng)會(huì)顯示地址欄。
往正常方向滾動(dòng)元件再次隱藏。
http://wiki.jikexueyuan.com/project/material-design/images/Patterns-Gestures-TouchActivities-02_large_mdpi.png" alt="Gestures-TouchActivities-02" />
任意方向,一或兩只手指
通常應(yīng)用于:
兩只手指的的平移是從其他兩只手指的手勢(如,捏合、捏放或旋轉(zhuǎn))轉(zhuǎn)變過來的,比如在地圖上操作。如果一開始就用兩只手指平移會(huì)形成內(nèi)容的傾斜。
拖動(dòng)(drag)就是平移的典型。
快擲會(huì)保持手勢的速率,在該快擲方向上內(nèi)容有明顯的平移。
http://wiki.jikexueyuan.com/project/material-design/images/Patterns-Gestures-TouchActivities-03_large_mdpi.png" alt="Gestures-TouchActivities-03" />
從一個(gè)可以滑動(dòng)的元件開始,比如列表中的一項(xiàng)或是卡片狀原件。
方向與滾動(dòng)的方向垂直。
一般是水平方向,對稱使用。
消除手勢要達(dá)到某個(gè)閥值才會(huì)生效。
http://wiki.jikexueyuan.com/project/material-design/images/Patterns-Gestures-TouchActivities-04_large_mdpi.png" alt="Gestures-TouchActivities-04" />
作用于列表的起始項(xiàng)上面,或者是界面內(nèi)容開始的那頭的空白的邊緣。
方向通常是垂直向下。
http://wiki.jikexueyuan.com/project/material-design/images/Patterns-Gestures-TouchActivities-05_large_mdpi.png" alt="Gestures-TouchActivities-05" />
邊緣滑動(dòng)從屏幕外開始的滑動(dòng)動(dòng)作。用于激活與當(dāng)前場景不相關(guān)或有區(qū)別的內(nèi)容。
在沒有定義邊緣滑動(dòng)的情況下,邊緣滑動(dòng)動(dòng)作的效果默認(rèn)為和頁片滑動(dòng)一致。
邊緣滑動(dòng)要達(dá)到某個(gè)閥值才會(huì)生效。
http://wiki.jikexueyuan.com/project/material-design/images/Patterns-Gestures-TouchActivities-06_large_mdpi.png" alt="Gestures-TouchActivities-06" />
頁片滑動(dòng)是在屏幕內(nèi)容上的滑動(dòng),用來顯示剩下的內(nèi)容。
如果單獨(dú)元件可以滑動(dòng),則不要使用頁片滑動(dòng)。每一次頁片滑動(dòng)用來顯示一個(gè)頁片/選項(xiàng)卡。
如果當(dāng)前頁片內(nèi)容是放大過的,首次頁片滑動(dòng)只會(huì)顯示剩余的內(nèi)容,再一次頁片滑動(dòng)才會(huì)切換頁片。
參見:滑動(dòng)折疊
頁片滑動(dòng)要達(dá)到某個(gè)閥值才會(huì)生效。 http://wiki.jikexueyuan.com/project/material-design/images/Patterns-Gestures-TouchActivities-07_large_mdpi.png" alt="Gestures-TouchActivities-07" />
滑動(dòng)折疊,以顯示更高層級。
在滾動(dòng)頁面的頂部或底部使用頁片滑動(dòng)可以切換到上一級內(nèi)容。
滑動(dòng)折疊要達(dá)到某個(gè)閥值才會(huì)生效。
http://wiki.jikexueyuan.com/project/material-design/images/Patterns-Gestures-TouchActivities-08_large_mdpi.png" alt="Gestures-TouchActivities-08" />
拖拽菜單內(nèi)容或選項(xiàng),內(nèi)容隨即出現(xiàn)。手指抬起時(shí),被選中項(xiàng)高亮顯示。
菜單通過觸擊出現(xiàn)。
菜單打開的動(dòng)作與拖拽動(dòng)作(drag)配合使用。
http://wiki.jikexueyuan.com/project/material-design/images/Patterns-Gestures-TouchActivities-09_large_mdpi.png" alt="Gestures-TouchActivities-09" />
傾斜 3D 內(nèi)容使之前進(jìn)或后退。
在地圖之類的應(yīng)用中,其他的兩指操作手勢(如捏放或旋轉(zhuǎn))會(huì)形成兩指的縮放。
傾斜與拖拽動(dòng)作(drag)配合使用。
http://wiki.jikexueyuan.com/project/material-design/images/Patterns-Gestures-TouchActivities-10_large_mdpi.png" alt="Gestures-TouchActivities-10" />