Windows Phone 7 开发 之使手机震动
webphp
13年前
<div id="article_content" class="article_content"> <p style="text-align:justify;padding-bottom:8px;line-height:22px;margin-top:0px;font-family:Verdana,Arial,Helvetica,sans-serif;margin-bottom:0px;color:#555555;padding-top:8px;"><span style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;">为什么要使我的手机震动?</span></p> <p style="text-align:justify;padding-bottom:8px;line-height:22px;margin-top:0px;font-family:Verdana,Arial,Helvetica,sans-serif;margin-bottom:0px;color:#555555;padding-top:8px;">有很多很多愚蠢和/或不合适的原因来让一个手机震动。然而,本文的目的是讲述一些让手机震动的具体原因。</p> <p style="text-align:justify;padding-bottom:8px;line-height:22px;margin-top:0px;font-family:Verdana,Arial,Helvetica,sans-serif;margin-bottom:0px;color:#555555;padding-top:8px;"><span style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;">游戏反馈</span></p> <p style="text-align:justify;padding-bottom:8px;line-height:22px;margin-top:0px;font-family:Verdana,Arial,Helvetica,sans-serif;margin-bottom:0px;color:#555555;padding-top:8px;">让我们先从一个明显的例子入手:游戏。当你玩儿游戏时,可能不能一直为用户提供他们所需的所有信息。(尤其是他们的手指在屏幕上时。)给他们一些<a style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;color:#436206;padding-top:0px;" href="/misc/goto?guid=4959500795387800194">触觉反馈</a> 可以让他们知道他们正在被攻击或是有一些需要他们注意的东西。</p> <p style="text-align:justify;padding-bottom:8px;line-height:22px;margin-top:0px;font-family:Verdana,Arial,Helvetica,sans-serif;margin-bottom:0px;color:#555555;padding-top:8px;"><span style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;">按钮反馈</span></p> <p style="text-align:justify;padding-bottom:8px;line-height:22px;margin-top:0px;font-family:Verdana,Arial,Helvetica,sans-serif;margin-bottom:0px;color:#555555;padding-top:8px;">这个对你来说可能非常普通,但对于你程序中的每个按钮来说,触觉反馈可以让用户得知他们按下了相应的按钮。Windows Phone中默认按钮会在被按下时变为一种单色,但很多时候用户并不能确定他们是否点击了它(尤其是这个操作需要几秒的时候)。给他们提供一个快速的震动可以让他们知道他们达到了自己的目的。</p> <p style="text-align:justify;padding-bottom:8px;line-height:22px;margin-top:0px;font-family:Verdana,Arial,Helvetica,sans-serif;margin-bottom:0px;color:#555555;padding-top:8px;"><span style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;">推送通知</span></p> <p style="text-align:justify;padding-bottom:8px;line-height:22px;margin-top:0px;font-family:Verdana,Arial,Helvetica,sans-serif;margin-bottom:0px;color:#555555;padding-top:8px;">另一个很明显的,但是震动反馈却没有被充分利用到的时机是推送通知。默认时,如果你收到一封电子邮件,短信息等等,你的电话会震动(或响铃)。我们可以在程序中利用这些相同的用户体验。当用户因为某事被警告时,可以让手机振动。这在你的程序处于被动状态时尤为重要。例如,一个程序在跟踪你的位置而你正在穿过邻居家。如果信号消失,或者是到达了目标距离,只需一个震动就可以让用户无须看他们的手机便知道了。同样还是这个例子,你甚至可以每1/4英里就向他们反馈一次,那样他们就会意识到自己走了有多远。</p> <p style="text-align:justify;padding-bottom:8px;line-height:22px;margin-top:0px;font-family:Verdana,Arial,Helvetica,sans-serif;margin-bottom:0px;color:#555555;padding-top:8px;"><span style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;">如何使手机震动?</span></p> <p style="text-align:justify;padding-bottom:8px;line-height:22px;margin-top:0px;font-family:Verdana,Arial,Helvetica,sans-serif;margin-bottom:0px;color:#555555;padding-top:8px;">太感谢了,这难以置信地简单。你只需要2行代码就能实现,但你会花很多时间来调整从而满足你的具体需求。这是最基本的代码:</p> <div style="text-align:left;padding-bottom:0px;line-height:21px;border-right-width:0px;margin:0px;padding-left:0px;padding-right:0px;font-family:Verdana,Arial,Helvetica,sans-serif;border-top-width:0px;border-bottom-width:0px;color:#333333;border-left-width:0px;padding-top:0px;" id="_mcePaste"> VibrateController vc = VibrateController.Default; </div> <div style="text-align:left;padding-bottom:0px;line-height:21px;border-right-width:0px;margin:0px;padding-left:0px;padding-right:0px;font-family:Verdana,Arial,Helvetica,sans-serif;border-top-width:0px;border-bottom-width:0px;color:#333333;border-left-width:0px;padding-top:0px;" id="_mcePaste"> vc.Start(TimeSpan.FromMilliseconds(100)); </div> <p style="text-align:justify;padding-bottom:8px;line-height:22px;margin-top:0px;font-family:Verdana,Arial,Helvetica,sans-serif;margin-bottom:0px;color:#555555;padding-top:8px;"></p> <p style="text-align:justify;padding-bottom:0px;line-height:22px;margin-top:1em;font-family:Verdana,Arial,Helvetica,sans-serif;margin-bottom:0.5em;color:#555555;padding-top:0px;"><span style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;">震动多长时间?</span></p> <p style="text-align:justify;padding-bottom:0px;line-height:22px;margin-top:1em;font-family:Verdana,Arial,Helvetica,sans-serif;margin-bottom:0.5em;color:#555555;padding-top:0px;">对于具体的提示应该震动多长时间没有一个统一的标准,但我会遵从一些规则,现在和你分享一下:</p> <ol style="text-align:left;padding-bottom:0px;line-height:21px;border-right-width:0px;list-style-type:none;margin:5px 0px 5px 35px;padding-left:0px;padding-right:0px;font-family:Verdana,Arial,Helvetica,sans-serif;border-top-width:0px;border-bottom-width:0px;color:#333333;border-left-width:0px;padding-top:0px;"> <li style="text-align:left;padding-bottom:2px;border-right-width:0px;list-style-type:decimal;margin:0px;padding-left:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:2px;">对于一个按钮点击来说1/10秒比较合适(这也是VibrateController可以震动的最短时间)。</li> <li style="text-align:left;padding-bottom:2px;border-right-width:0px;list-style-type:decimal;margin:0px;padding-left:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:2px;">2秒=你的用户会说“<span style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;padding-top:0px;">我的电话到底是怎么了?</span> ”。2秒对于任何一个提示都太长了。</li> <li style="text-align:left;padding-bottom:2px;border-right-width:0px;list-style-type:decimal;margin:0px;padding-left:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:2px;">300毫秒(约为1/3秒)貌似是一个稳定的振动提示的合适时间。这样你的用户才不会认为电话出了毛病</li> <li style="text-align:left;padding-bottom:2px;border-right-width:0px;list-style-type:decimal;margin:0px;padding-left:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:2px;">快速的脉冲震动是让用户知道正在发生的事情的另一种好方法。 <br /> </li> </ol> </div>