31天學會Windows Phone 7開發:使手機震動
上一篇,我們談到了Windows Phone的加速感應器,以及如何模擬一個真實設備來為我們提供數據。本文,我們來談談震動控制器(VibrateController)以及向用戶提供程序中正在發生的事情的反饋。
告訴某人如何使他的手機震動會立即引發一些沒趣兒的笑話,所以,在我提及15次“震動”之前,會將他們帶出到你的系統之外。
為什么要使手機震動?
有很多很多愚蠢和/或不合適的原因來讓一個手機震動。然而,本文的目的是講述一些讓手機震動的具體原因。
游戲反饋
讓我們先從一個明顯的例子入手:游戲。當你玩兒游戲時,可能不能一直為用戶提供他們所需的所有信息。(尤其是他們的手指在屏幕上時。)給他們一些觸覺反饋可以讓他們知道他們正在被攻擊或是有一些需要他們注意的東西。
按鈕反饋
這個對你來說可能非常普通,但對于你程序中的每個按鈕來說,觸覺反饋可以讓用戶得知他們按下了相應的按鈕。Windows Phone中默認按鈕會在被按下時變為一種單色,但很多時候用戶并不能確定他們是否點擊了它(尤其是這個操作需要幾秒的時候)。給他們提供一個快速的震動可以讓他們知道他們達到了自己的目的。
推送通知
另一個很明顯的,但是震動反饋卻沒有被充分利用到的時機是推送通知。默認時,如果你收到一封電子郵件,短信息等等,你的電話會震動(或響鈴)。我們可以在程序中利用這些相同的用戶體驗。當用戶因為某事被警告時,可以讓手機振動。這在你的程序處于被動狀態時尤為重要。例如,一個程序在跟蹤你的位置而你正在穿過鄰居家。如果信號消失,或者是到達了目標距離,只需一個震動就可以讓用戶無須看他們的手機便知道了。同樣還是這個例子,你甚至可以每1/4英里就向他們反饋一次,那樣他們就會意識到自己走了有多遠。
如何使手機震動?
太感謝了,這難以置信地簡單。你只需要2行代碼就能實現,但你會花很多時間來調整從而滿足你的具體需求。這是最基本的代碼:
- VibrateController vc = VibrateController.Default;
- vc.Start(TimeSpan.FromMilliseconds(100));
震動多長時間?
對于具體的提示應該震動多長時間沒有一個統一的標準,但我會遵從一些規則,現在和你分享一下:
1. 對于一個按鈕點擊來說1/10秒比較合適(這也是VibrateController可以震動的最短時間)。
2. 2秒=你的用戶會說“我的電話到底是怎么了?”。2秒對于任何一個提示都太長了。
3. 300毫秒(約為1/3秒)貌似是一個穩定的振動提示的合適時間。這樣你的用戶才不會認為電話出了毛病。
4.快速的脈沖震動是讓用戶知道正在發生的事情的另一種好方法。我在代碼中包含了這個例子,但如果想更清晰地了解我是如何做的,來看看我的這篇關于“如何在SilverLight中創建一個SetTimeout函數”的教程。
下載示例代碼
在接下來的幾篇文章里我們會迎來一些重量級的話題,包括位置服務和墓碑機制。
原作者:Jeff Blankenburg 譯者:金山崟霸
中文來源:http://www.cnblogs.com/porscheyin/archive/2010/12/22/1914287.html
英文來源:http://www.jeffblankenburg.com/2010/10/12/31-days-of-windows-phone-day-12-making-a-phone-vibrate/
【編輯推薦】