毛 昊
(蘭州大學信息科學與工程學院,甘肅 蘭州 730000)
智能手機和平板電腦等移動計算設備,因其便攜性,已經成為人們日常通訊的主要工具;這些移動計算設備的處理能力和存儲能力也日益強大,使其同時也成為人們最常用的信息處理工具之一。它們的屏幕尺寸通常較小,這就使得大量需要顯示的信息和小尺寸屏幕間的矛盾相對于其它計算設備而言更加突出:用戶在瀏覽和處理大量信息時不得不頻繁地進行手動滾屏的操作,這樣就增加了用戶的操作負擔,降低了操作績效。作為使用觸摸屏的移動計算設備,它們相對于通過鼠標等輸入設備的交互方式來說存在輸入精度低的問題[1]。為了保持一定操作準確率,觸摸屏上的對象尺寸就不能過小,有研究[2]表明對手機單手交互時,為了保持較高的輸入準確率,對于離散的輸入任務來說目標對象尺寸應該達到 9.2 mm,而連續的輸入任務則要求目標對象尺寸要達到 9.6 mm。以最常見的5.5英寸的手機屏幕為例,其屏幕的高度約為 120 mm,這樣在屏幕縱向上大約可以布置 12個對象。考慮到一般窗口都會有標題欄、狀態欄等組件,對象之間還要保留必要的間隔,縱向實際能排列的對象為8個左右。以手機聯系人列表為例,瀏覽包含200個聯系人的列表,至少要滾屏25次。單手操作手機時,需要用大拇指來完成操作[3]。大拇指因為其形態學(morphology)上[4]限制,它在屏幕上方便觸及的范圍通常只是屏幕的一部分[5],如圖1所示,需要滾屏的全部次數就會倍增。
而頻繁滾屏的消極影響是顯而易見的:增加操作負擔、降低交互績效、造成手指的疲勞等等。所以,通過技術手段減少人們在移動計算設備上瀏覽和處理信息時的滾屏次數無疑是有研究和實際應用價值的。通常情況下,人們在屏幕窗口中瀏覽和處理信息的方式是有規律的:總體上是按照由上往下、從前向后的順序。這樣就為我們研發自適應滾屏的技術提供了可能。本文將介紹一種針對信息(或對象)在屏幕窗口中線性排列情況的自適應滾屏技術,通過和傳統的操作方式作對比驗證該項技術的有效性,并研究在雙手操作的模式下該項技術在屏幕中最佳作用范圍。
一般情況下,人們在屏幕窗口中閱讀和處理信息的次序是:由上往下、從前向后。如果信息(或對象)在屏幕窗口中按照線性規律由上往下依次排列的話,假如人們在瀏覽或者處理信息的過程中沒有疏漏,則窗口中的信息(或對象)按照人們正在瀏覽或處理的位置(我們稱之為“處理位”)可以劃分為“處理位”、“已覽區”(“處理位”之前的區域)和“未覽區”(“處理位”之后的區域)三個部分,如圖 2所示。“已覽區”內的內容為用戶已經瀏覽或處理完的信息,這部分信息是可以隱藏的;“處理位”的內容在用戶處理后也是可以隱藏的:這樣,如果我們能夠判斷出“處理位”和用戶對之的處理時機的話,我們就可以通過設置讓程序做出自適應滾屏處理——讓窗口中“處理位”之后的下一行的信息自動置于窗口頂部,而將其上內容部分自動隱藏。
對自適應滾屏技術進行設計時,我們首先需要確定“處理位”和其處理時機。對于像在手機聯系人列表中批量選取多個聯系人、在手機文件管理器中批量選取多個文件及目錄等一類操作任務來說,用戶通過在一個個想要選取的項目上叩擊(tapping)來對其進行選取,則用戶當前叩擊的項目所在位置即可當作“處理位”,而用戶叩擊完成后手指抬起的時刻即為對“處理位”的處理時機。這樣自適應滾屏技術即可設計為當用戶從屏幕上抬起手指時,將“處理位”之后的下一個項目自動置于窗口頂部。在這一過程中,自適應滾屏技術的激活不需要用戶額外做出任何的操作;相反,自適應滾屏技術可以減少用戶的手動滾屏操作,加快已經處理項目的自動隱藏和未處理項目在屏幕窗口中的自動呈現。

圖1 單手操作手機時在3.5-5英寸屏幕上大拇指可觸及的范圍[5]Fig.1 The reach of the thumb is shown with screen sizes varying from 3.5-inches to 5-inches

圖2 技術設計思路Fig.2 T echnique design
為了驗證前文所述系統的有效性及該技術的最佳作用區域,我們設計并實現了一個技術驗證的原型系統。人們對通訊錄進行過許多相關的研究[6],它是手機上最重要、使用最頻繁的功能之一,由于通訊錄的聯系人菜單環境特別適用本技術,通過該系統我們對比了被試者在手機聯系人的批量選擇操作任務中,采用自適應滾屏技術和傳統的操作方式(完全手動滾屏)之間的交互績效的差異,同時還研究了在雙手操作模式下自適應滾屏技術的最佳作用區域。
鑒于大多數移動計算設備使用的操作系統為Android,我們在Android手機上設計并實現了上述的技術驗證系統,采用的編程語言為Java[7,8]。我們選擇的主要界面組件為listview,用可擴展性最好的SimpleAdapter來加載信息項的各個子元素和選項框[9]。當Android加載一個listview的布局時,通常是通過 getView( )方法來獲取該 View的各種參數的。相關操作代碼片段如下:


從中我們可以看到 getView( )方法一共接受了三個參數,其中第一個參數 position代表了所要加載的 View中的子元素的當前顯示位置[10],即當改變對應的 position值時,對應的子元素也會相應的改變位置。當用戶對目標項進行選擇時,會觸發該項目的點擊事件,我們在點擊事件中加入對項目的position參數設置,從而實現自適應滾屏效果。
由于Android系統中的點擊事件分為三個步驟:落下(ActionDown)、移動(ActionMove)和抬起(ActionUp)[11],而對于目標選擇功能而言,用戶的每個目標點擊操作只需要落下和抬起即可完成,而只有當用戶抬起手指時,才能判定某個子元素的checkbox是否被選中。于是我們在用戶抬起手指時,做以下處理:當某個子元素的checkbox處于被選中狀態時,對當前所選中的子元素項調用setSelection(int position),這里的 position就對應該項在listview中所處的位置,無論被選中項當前的position值為多少,當抬起操作完后都將position的值置為-1,這樣被選中項的下一項就會在這次點擊事件完成后自動顯示在屏幕的頂端,使用戶產生了一種被選中項的下一項會自動位移到屏幕頂端的自適應滾屏效果,從而達到將已瀏覽區域的子元素項自動隱藏起來的目的。整體實現的功能效果如圖 3所示。
對于某個功能而言,人們非常關心其使用效率。有從用戶的使用滿意度角度進行試驗的[12],有從用戶的行為分析角度出發的[13],有從應用的測試設計原理著眼的[14]。鑒于此,基于人機交互的實驗設計原則[15],為了驗證自適應滾屏技術的有效性及其在手機屏幕窗口中的最佳作用區域,我們招募了15名被試者進行了相關實驗。在實驗中按照自適應滾屏技術的作用區域,我們一共將實驗分成5種不同的情況,如圖4所示。其中作用區域為0%的情況即為傳統的操作模式,即不采用自適應滾屏技術。

圖3 操作效果示意圖Fig.3 Manipulation effect diagram
先就自適應滾屏技術的5種作用區域的具體設置做簡要描述。首先,我們將手機屏幕上的整個listview的覆蓋區域劃分為比例大致相同的4塊,如圖5所示,然后將本技術產生作用的范圍(覆蓋范圍)根據這4塊區域劃分為5個等級:全屏幕(即屏幕的0%區域)不具備滾動效果、屏幕頂端第一塊區域(即屏幕的頂端25%區域)具備滾動效果、屏幕上段兩塊區域(即屏幕的上端50%區域)具備滾動效果、屏幕頂部往下前三塊區域(即占屏幕大半部分的上面75%區域)具備滾動效果和全屏幕(即屏幕的100%區域)具備滾動效果。
在以上五種不同的實驗條件下,測試者需要完成對列表項中的指定目標選項進行多目標批量選擇的實驗任務。實驗中被試者以雙手操作的方式完成規定的實驗任務,即他們要用非慣用手持手機,用慣用手點選指定的目標項。實驗中記錄實驗任務的完成時間、手動滾動屏幕的次數等數據。
通過對實驗數據分析,我們發現,采用自適應滾屏技術后,相對于傳統的操作方式來說,被試者完成實驗任務所需的時間有了顯著的減少,如圖 6所示。同時,我們還發現當屏幕窗口頂部的75%區域和100%的區域具備自動滾屏功能時,被試者在實驗中的交互績效最高,即自適應滾屏技術在雙手操作模式下的最佳作用區域為屏幕窗口的頂部75%及以上區域。另外,分析結果還顯示在所有4種采用自適應滾屏技術的實驗任務中,被試者手動滾屏次數相對于傳統方式都有了顯著的降低。總之,相對于移動設備上現有的操作模式來說,自適應滾屏技術的使用不僅提高了用戶的操作績效,同時還減少了手動滾屏次數,被試者表示新技術的采用可以降低實驗中手疲勞的程度。

圖4 覆蓋范圍選項Fig.4 Coverage range options

圖5 區域劃分示意圖Fig.5 Regional division diagram

圖6 五種覆蓋范圍對應的操作時間Fig.6 Man ipulation time concerning five types of coverage
本文設計并實現了一種基于 Android操作系統的應用于移動設備上的自適應滾屏技術,并對該技術與傳統的操作模式進行了對比。實驗結果顯示新技術在操作效率上有了明顯的提高,同時手動滾動屏幕的次數明顯減少。該技術同時還降低了被試者在完成批量選擇任務時的手疲勞程度。另外,本文還研究了所提出技術在屏幕窗口中的最佳作用范圍,實驗結果顯示在雙手操作模式下,最佳作用范圍為屏幕窗口頂部的75%及以上區域。該技術適用于信息(或對象)在屏幕窗口中線性排列的情況,尤其適用于在這種情況下的多目標對象的批量選擇的交互任務。考慮到手機等移動計算設備有時會需要單手操作,我們將在以后的工作中研究在單手操作模式下的自適應滾屏技術。
[1] Albinsson P-A, Zhai S. High precision touch screen interaction[C]. Proceedings of the SIGCHI conference on Human factors in computing systems, 2003: 105-112.
[2] Parhi P, Karlson A K, Bederson B B. Target size study for one-handed thumb use on small touchscreen devices[C].Proceedings of the 8th Conference on Human-Computer Interaction with Mobile Devices and Services, Mobile HCI 2006, Helsinki, Finland, September 12-15, 2006, 2006:203--210.
[3] 辛義忠, 李洋, 李巖, et al. 面向大屏幕手機的單手目標選擇方法[J]. 計算機輔助設計與圖形學學報, 2016, 28(10):1750-1756.
[4] Roudaut A, Huot S, Lecolinet E. TapTap and MagStick:improving one-handed target acquisition on small touch-screens[C], 2008: 146-153.
[5] Kim S, Yu J, Lee G. Interaction techniques for unreachable objects on the touchscreen[C]. Proceedings of the 24th Australian Computer-Human Interaction Conference, 2012:295-298.
[6] 孫紅麗, 葉斌. 基于Android的通訊錄系統的設計與實現[J]. 軟件, 2015, (5): 117-120.
[7] 李剛. 瘋狂Android講義.第2版[M]. 電子工業出版社,2013.
[8] 劉甫迎, 劉焱. Android移動編程實用教程[M]. 電子工業出版社, 2012.
[9] 丁振凡, 吳小元. Android系統ListView控件數據遞增顯示研究[J]. 智能計算機與應用, 2014, (2): 49-53.
[10] Guolin. Android ListView工作原理完全解析,帶你從源碼的角度徹底理解. 2015.
[11] Google. Andoid Developers[J], 2015.
[12] Wixom B H, Todd P A. A Theoretical Integration of User Satisfaction and Technology Acceptance[J]. Info. Sys.Research, 2005, 16(1): 85-102.
[13] 黃文雄. 面向Android應用的用戶行為分析方法[J]. 軟件,2014, (12): 83-87.
[14] 劉璐. Android智能終端功能測試方法設計與系統實現[J].軟件, 2014, (12): 79-82.
[15] Mackenzie I S. Human-Computer Interaction: An Empirical Research Perspective[J]. Handbook of Humancomputer Interaction Edition, 2012, 6(1): 3-21.