Windows Phone 7 开发 31 日谈——第12日:使手机震动
本文是“Windows Phone 7 开发 31 日谈”系列的第12日。
昨天,我们谈到了Windows Phone的加速感应器,以及如何模拟一个真实设备来为我们提供数据。今天,我们来谈谈震动控制器(VibrateController)以及向用户提供程序中正在发生的事情的反馈。
告诉某人如何使他的手机震动会立即引发一些没趣儿的笑话,所以,在我提及15次“震动”之前,会将他们带出到你的系统之外。呵呵,开始吧……我可以等。
为什么要使手机震动?
有很多很多愚蠢和/或不合适的原因来让一个手机震动。然而,本文的目的是讲述一些让手机震动的具体原因。
游戏反馈
让我们先从一个明显的例子入手:游戏。当你玩儿游戏时,可能不能一直为用户提供他们所需的所有信息。(尤其是他们的手指在屏幕上时。)给他们一些触觉反馈可以让他们知道他们正在被攻击或是有一些需要他们注意的东西。
按钮反馈
这个对你来说可能非常普通,但对于你程序中的每个按钮来说,触觉反馈可以让用户得知他们按下了相应的按钮。Windows Phone中默认按钮会在被按下时变为一种单色,但很多时候用户并不能确定他们是否点击了它(尤其是这个操作需要几秒的时候)。给他们提供一个快速的震动可以让他们知道他们达到了自己的目的。
推送通知
另一个很明显的,但是震动反馈却没有被充分利用到的时机是推送通知。默认时,如果你收到一封电子邮件,短信息等等,你的电话会震动(或响铃)。我们可以在程序中利用这些相同的用户体验。当用户因为某事被警告时,可以让手机振动。这在你的程序处于被动状态时尤为重要。例如,一个程序在跟踪你的位置而你正在穿过邻居家。如果信号消失,或者是到达了目标距离,只需一个震动就可以让用户无须看他们的手机便知道了。同样还是这个例子,你甚至可以每1/4英里就向他们反馈一次,那样他们就会意识到自己走了有多远。
如何使手机震动?
太感谢了,这难以置信地简单。你只需要2行代码就能实现,但你会花很多时间来调整从而满足你的具体需求。这是最基本的代码:
vc.Start(TimeSpan.FromMilliseconds(100));
震动多长时间?
对于具体的提示应该震动多长时间没有一个统一的标准,但我会遵从一些规则,现在和你分享一下:
- 对于一个按钮点击来说1/10秒比较合适(这也是VibrateController可以震动的最短时间)。
- 2秒=你的用户会说“我的电话到底是怎么了?”。2秒对于任何一个提示都太长了。
- 300毫秒(约为1/3秒)貌似是一个稳定的振动提示的合适时间。这样你的用户才不会认为电话出了毛病
- 快速的脉冲震动是让用户知道正在发生的事情的另一种好方法。我在代码中包含了这个例子,但如果想更清晰地了解我是如何做的,来看看我的这篇关于“如何在SilverLight中创建一个SetTimeout函数”的教程。
下载示例代码
在接下来的几天里我们会迎来一些重量级的话题,包括位置服务和墓碑机制。请在这个系列的任意文章中留下评论来告诉我你是如何想的!
原文地址:http://www.jeffblankenburg.com/post/31-Days-of-Windows-Phone-7c-Day-12-Making-A-Phone-Vibrate.aspx