Gesture APIs-Furthering Windows Mobile 6.5 Touch Gesture Framework
Windows mobile 6.5开发者工具包在6月初就已经面世了。它给广大技术爱好者带来的新特性包括Widgets和Gesture API。在Widgets应用上,已经有开发人员进行了探索和尝试,包括Guojing、马老师和Jake.NET等。这次我们就一起来看看TDK中Gesture API的例子。
在开始之前,对于Gesture API,我们需要注意的有以下两点:
第一,Gesture API只能使用在Windows Mobile 6.5平台上,之前版本的Windows Mobile都不支持,所以,就不要想着在Windows Mobile 6.0或者6.1(因为目前很多人的设备都是这个版本)上来开发基于Gesture API的应用。
第二,Windows Mobile 6.5平台上,也只是Classic and Professional SKUs支持Gesture API,,因为大家知道,Standard是不支持触摸的。
TDK自带的Gesture API例子位于%\Windows Mobile 6.5 Developer Tool Kit\Samples目录下。包含三个工程:GestureMetricsSample、PhysicsEngineSample和WagSample。这三个工程分别用到了Gesture.h、GesturePhysicsEngine.h和WindowAutoGesture.h这三个头文件,都位于%\Program Files\Windows Mobile 6 SDK\PocketPC\Include\Armv4i目录下。
Gesture Metrics Sample
GestureMetricsSample这个例子展示了如何使用WM_GESTURE中的GID_HOLD(保持), GID_SELECT(选择)和GID_DOUBLESELECT(双击)这三个消息。
当用户用触笔单击屏幕的时候,启动保持定时器(ID_HOLD_TIMER);如果在WM_GESTURE中检测到是GID_HOLD,那么就kill这个保持定时器(ID_HOLD_TIMER),并提示用户;如果在WM_GESTURE中检测到是GID_SELECT,那么就启动双击定时器(ID_DOUBLESELECT_TIMER);如果在WM_GESTURE中检测到是GID_DOUBLESELECT,那么就kill这个双击定时器(ID_DOUBLESELECT_TIMER),并提示用户。
Physics Engine Sample
PhysicsEngineSample这个例子展示了如何使用WM_GESTURE中GID_PAN, GID_SCROLL 和GID_END这三个消息。需要注意的是,在使用Physics Engine之前,需要声明一个HPHYSICSENGINE类型的全局变量。
有了这个Physics Engine,我们就可以在设备上浏览大分辨率的图片,使用触笔在触摸屏上滑动,选择需要浏览的部分,在过渡时,具有一个滑动滚屏的效果,这个功能目前是新加入的。大家可以尝试用windows mobile自带的"图片和视频"工具打开图片,这时是没有滑动滚屏的效果的,但是程序中如果我们使用了Physics Engine,就可以产生滑动滚屏的效果。
WagSample
WagSample这个例子实现的功能和PhysicsEngineSample这个例子是一样的,不同的是,它加入了用户的选择,即我们用户可以选择“是否支持触摸笔”、“是否支持滚屏”等等。
这里只是很肤浅地介绍了WM6.5 TDK自带的Gesture API例子,主要是MSDN上的资料实在是太少(目前好像还没有)。基本上是把自己使用这三个例子的体会发上来和大家共享一下。下一步的目标是自己做一个实例,学会如何使用Gesture API,并逐渐解开它神秘的面纱。