陳俊彥
【摘 要】研究不同年齡段用戶對各種觸摸操作手勢的掌握能力,測試不同手勢在安卓設備上對小孩,中年人和老人的可用性。
【關鍵詞】觸摸屏操作手勢;數(shù)據(jù)分析
中圖分類號: TP391.41文獻標識碼: A文章編號: 2095-2457(2019)04-0127-002
DOI:10.19694/j.cnki.issn2095-2457.2019.04.051
0 引言
觸摸屏界面有顯而易見的優(yōu)點,能夠更快的與設備通過多點觸控產(chǎn)生互動。[1]雖然多點觸控手勢在2009年之后就步入了發(fā)展高峰,但是關于智能設備上多點觸控手勢用戶體驗研究比較滯后。本文將對經(jīng)常使用的8種基礎手勢進行實際測量研究,探討不同年齡段的人群對操作手勢的適應程度。
1 多點觸控研究應用程序程序開發(fā)
多點觸控(Multitouch),又稱多重觸控,多觸控。是采用人機交互和硬件設備共同使用的技術。在沒有傳統(tǒng)輸入設備的情況下,移動設備能夠接收到多根手指進行手勢識別、操控。常用的手勢可以分為四大類8種,測試成功率和完成時間,每個受測者有兩次機會,如若第一次完成,則不必第二次,反之,則需要進行第二次測試。
設計一個程序進行手勢測量,目的是為了獲取不同性別和年齡段對手勢操作的適應度。
程序分成4部分,分別測試Tab類動作、Drag類動作、Scale類動作、Rotate類動作。
四類操作的源程序代碼如下:
1.1 點擊類動作
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
if (firstTime == 0) {
firstTime = System.currentTimeMillis();
}
break;
case MotionEvent.ACTION_UP:
break;
}
return super.onTouchEvent(event);
}
根據(jù)Android系統(tǒng)檢測到的MotionEvent.ACTION_DOWN手勢按下屏幕動作,記錄按下時間。MotionEvent.ACTION_UP手勢抬起屏幕動作,截止記錄時間。
1.2 拖拽類動作
public boolean onTouchEvent(MotionEvent event) {
if (getFinalTime)
return false;
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
if (startTime == 0) {
startTime = System.currentTimeMillis();
}
break;
case MotionEvent.ACTION_MOVE:
moveView(ivCat,event.getX(),event.getY() - Utils.getStatusBarHeight(this));
break;
case MotionEvent.ACTION_UP:
long l = System.currentTimeMillis();
if (Math.abs(ivCat.getX() - ivCatEmpty.getX()) < 10
&& Math.abs(ivCat.getY() - ivCatEmpty.getY()) < 10) {
mVibrator.vibrate(200);
tv1.setText("移動手勢成功:" + (l - startTime) + "毫秒");
} else {
tv1.setText("移動手勢失?。? + (l - startTime) + "毫秒");
}
tv1.setVisibility(View.VISIBLE);
ToastUtils.showToast("耗時:" + (l - startTime) + "毫秒");
getFinalTime = true;
break;
}
return super.onTouchEvent(event);
}
位移計算函數(shù):
/* 設置View的布局屬性,使得view隨著手指移動 */
private void moveView(View view, float x, float y) {
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) view.getLayoutParams();
params.leftMargin = (int) x - ivCat.getWidth() / 2;
params.topMargin = (int) y - ivCat.getHeight() / 2;
view.setLayoutParams(params);
}
1.2.1 雙指旋轉
雙指動作中,多了兩個MotionEvent。
case MotionEvent.ACTION_POINTER_DOWN:
case MotionEvent.ACTION_POINTER_UP:
MotionEvent.ACTION_POINTER_DOWN在多指按下屏幕時候產(chǎn)生,使用全局變量記錄手指數(shù)量;
MotionEvent.ACTION_POINTER_UP ? 在多指離開屏幕時候產(chǎn)生,使用全局變量記錄手指數(shù)量。
1.2.2 縮放類動作
雙指縮放,需要處理MotionEvent.ACTION_POINTER_DOWN、MotionEvent.ACTION_POINTER_
UP兩個事件。當雙指接觸屏幕之后,MotionEvent中返回的x,y坐標。getX(0),getY(0)返回第一指的屏幕坐標。getX(1),getY(1)返回第二指的屏幕坐標。通過spacing函數(shù)計算出兩指的動態(tài)距離。然后與初始距離比較,所得的比值即為view需要縮放的倍數(shù)。
private float spacing(MotionEvent event) {
float x = event.getX(0) - event.getX(1);
float y = event.getY(0) - event.getY(1);
return (float) Math.sqrt(x * x + y * y);
}
2 實驗檢測結果
實驗共征集了30名受測者,包括10名老年人,10名成年人及10名兒童。在測試之前,我們對受測者進行了調查,他們全部無認知障礙,擁有正常的肢體運動能力,通過得到到具體的測試數(shù)據(jù)分析得到如下結論:
(1)單擊任務和長按任務在各個年齡段都表現(xiàn)優(yōu)異。在所有任務中,成年組都較為穩(wěn)定,在雙擊和拖拽任務中老年組表現(xiàn)較差,兒童組在雙指旋轉任務和縮小任務中表現(xiàn)較差。
(2)男性有著較好的任務完成成功率,隨著任務變得困難,男女完成任務的成功率都逐漸降低,與女性相比,男性顯然有著比較好的適應能力,女性在雙指旋轉的任務中成功率出現(xiàn)了顯著地降低。
(3)兒童組在整體上學習速度較快,隨著年齡的增長,速度逐漸變慢。對于完成度來說,最好的是成年組,老人組和兒童組相對較弱。
綜上,對老年人手勢選擇應盡量簡單、易完成且應用較多。成年人對手勢不敏感,兒童不要選擇過于精細的手勢。
【參考文獻】
[1]Hwayeong Kang, Gwanseob Shin. Effects of touch target location on performance and physical demands of computer touchscreen use[J]. Applied Ergonomics, 2017, 61.
[2]呂明,呂延.觸摸屏的技術現(xiàn)狀、發(fā)展趨勢及市場前景[J].機床電器.2012(03).
[3]陶達,袁娟,劉雙,曲行達,陳星宇.觸摸屏按鍵特征因素對鍵盤輸入操作可用性的影響[J].《人類工效學》,2016,22(5):1-6.