成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

S40 Touch API - Gesture API

移動開發
利用觸摸屏的手勢操會使得應用程序的用戶體驗大大提升,比如用Drag進行屏,用Flick進行滾動等。

利用觸摸屏的手勢操會使得應用程序的用戶體驗大大提升,比如用Drag進行屏,用Flick進行滾動等。

從S40_6th_Edition_FP1開始,諾基亞S40 SDK中加入了com.nokia.mid.ui.gestures 包,對觸摸屏手勢進行支持。開發者無需再自己實現手勢識別引擎。Nokia Gesture API包由兩個接口和兩個類組成。

接口

GestureEvent

The GestureEvent interface class is used by an application to receive gesture recognition events from the platform.

GestureListener

This interface is used by applications which need to receive gesture events from the implementation.

GestureInteractiveZone

The GestureInteractiveZone class is used by an application to define an area of the screen that reacts to a set of specified gestures.

GestureRegistrationManager

The GestureRegistrationManager class provides the ability to register a GestureListener to be notified when a gesture event occurs within a container.

Gesture API采用了觀察者設計模式。

第一步:創建GestureInteractiveZone實例

GestureInteractiveZone定義了一個可以接收手勢事件的區域。缺省的GestureInteractiveZone包括整個屏幕。GestureInteractiveZone同時注冊了MIDlet響應哪些手勢事件。

// 創建一個相應所有手勢事件的GestureInteractiveZone 對象 GestureInteractiveZone giz = new GestureInteractiveZone( GestureInteractiveZone.GESTURE_ALL ); // 設置相應區域 giz.setRectangle( x, y, width, height);

在GestureInteractiveZone中定義了可被識別的手勢:

static int GESTURE_ALL Constant for All Gesture Events.

static int GESTURE_DRAG Constant for the Drag Gesture.

static int GESTURE_DROP Constant for the Drop Gesture.

static int GESTURE_FLICK Constant for the Flick Gesture.

static int GESTURE_LONG_PRESS Constant for the Long Press Gesture.

static int GESTURE_LONG_PRESS_REPEATED Constant for the Long Press Repeated Gesture.

static int GESTURE_TAP Constant for the Tap Gesture.

第二步,實現GestureListener接口

GestureListener接口只定義了一個方法:gestureAction(), 當系統的手勢識別引擎探測到在第一步中注冊了的手勢后,這個方法會被調用。該方法每次被調用時會接收到一個GestureEvent實例。GestureEvent中保存有最后接收到的手勢事件的參數。

public void gestureAction(Object container, GestureInteractiveZone gestureZone, GestureEvent gestureEvent)
{
switch( event.getType() ) {
case GestureInteractiveZone.GESTURE_TAP:
...;
break;
case GestureInteractiveZone.GESTURE_LONG_PRESS:
case GestureInteractiveZone.GESTURE_LONG_PRESS_REPEATED:
case GestureInteractiveZone.GESTURE_DRAG:
case GestureInteractiveZone.GESTURE_DROP:
case GestureInteractiveZone.GESTURE_FLICK:
}
}

GestureEvent接口中定義了大量的get方法。 對于所有的手勢事件都可以得到x,y坐標;

int getFlickSpeedX() Query for the Flick gesture events speed in horizontal direction.

int getFlickSpeedY() Query for the Flick gesture events speed in vertical direction.

對于DRAG 和 DROP事件還可以分別得到x和y方向上變化的距離;

int getDragDistanceX()
Query for the Drag & Drop gesture events movement in horizontal direction since last drag gesture.
int getDragDistanceY()
Query for the Drag & Drop gesture events movement in vertical direction since last drag gesture.

對于FLICK事件,可以得到移動的速度和方向;

float getFlickDirection() Query for the Flick gesture events direction.

int getFlickSpeed() Query for the Flick gesture events speed in actual flick direction.

int getFlickSpeedX() Query for the Flick gesture events speed in horizontal direction.

int getFlickSpeedY() Query for the Flick gesture events speed in vertical direction.

第三步,注冊GestureInteractiveZone和Listener

GestureRegistrationManager類

static boolean register(java.lang.Object container, GestureInteractiveZone gestureInteractiveZone)
Register a gesture interactive zone to a container.
static void setListener(java.lang.Object container, GestureListener listener)
Add a listener to the a container.

這兩個方法的參數中都包括了一個容器類( Canvas 或者 CustomItem)。下面的代碼演示了如何注冊GestureInteractiveZone和Listener:

// 注冊GestureInteractiveZone
Canvas canvas = new GestureCanvas();
GestureRegistrationManager.register( canvas, giz );

//注冊 Listener
GestureRegistrationManager.setListener(canvas, this);

使用Gesture API時應注意:

1. 不要在gestureAction(…)方法中阻塞UI線程。

2. 不要將gestureAction(…)以外的變量指向GestureEvent實例。

代碼示例 Media:TouchSample.zip

 

責任編輯:Yeva 來源: NOKIA Developer
相關推薦

2013-01-25 14:44:47

S40Series 40

2013-01-25 14:56:23

S40Series 40

2013-01-25 15:04:30

S40Series 40

2011-04-25 17:17:55

Gesture APIWindows Mob

2013-01-25 14:08:32

S40Series 40

2013-01-25 13:49:26

S40Series 40

2013-01-25 15:29:14

s40Series 40

2013-01-25 14:06:17

S40Series 40

2012-03-26 21:45:13

S40

2013-10-31 14:30:44

CloudaAPI

2011-09-02 16:08:09

Sencha ToucAPI文檔

2012-02-02 09:06:44

SymbianS40諾基亞

2012-12-14 14:48:01

諾基亞Series 40S40

2024-06-26 00:22:35

2021-08-09 08:20:59

API安全測試漏洞

2014-12-22 10:28:47

2023-06-26 18:13:56

開源API

2012-04-13 09:17:19

微軟API必應搜索

2022-11-24 13:17:43

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品欧美一区免费观看α√ | 免费观看黄网站 | 91影库| 在线色网 | 成人影院网站ww555久久精品 | 涩涩视频网站在线观看 | 国产成人午夜精品影院游乐网 | 婷婷久久网 | 国产精品视频一二三区 | 日本精品视频一区二区 | 成人1区2区 | 久久99精品视频 | 亚洲一卡二卡 | 欧美精品久久久久 | 日韩一区二区三区在线观看视频 | 最新中文字幕在线 | 成人av免费网站 | 欧美影院| 亚洲日本一区二区 | 国产在线看片 | 欧美久久久久久 | 精品国产久 | 亚洲一区自拍 | 99久久精品免费看国产高清 | 亚洲精品在线视频 | 久久精品久久久久久 | 高清一区二区三区 | 91麻豆久久久 | 欧美极品在线观看 | 在线视频一区二区三区 | 久久精品免费一区二区三 | 国产精品区二区三区日本 | 国产精品爱久久久久久久 | 夜夜夜夜草 | 中文字幕中文字幕 | 国产精品久久久久久52avav | 日本一区二区三区在线观看 | 亚洲精品女人久久久 | 电影在线| 精品人伦一区二区三区蜜桃网站 | 久在线 |