在WTK目录下的WTK22wtklibdevicesDefaultColorPhoneDefaultColorPhone.properties的文件中有一行touch_screen=false,把它改成true。
MIDP2.0对于触摸屏方法有三个:
1.pointerDragged(int x, int y) 触摸屏拖拽事件(暂时还没研究)
2.pointerPressed(int x, int y) 触摸屏按压
3.pointerReleased(int x, int y) 触摸屏释放
pointerPressed(int x, int y)当用户按下触摸屏的时候会自动调用这个方法x,y就是当前压下的坐标
pointerReleased(int x, int y)和pointerPressed(int x, int y)类似相应触摸屏释放事件
这里,我只是以相应左右软键及菜单事件处理为例:
protected void pointerPressed(int x, int y) {
switch (status) {
case Consts.S_MENU:
int menuWidth = 90;
int menuItemHeight = 17;
int menuBarHeight = 16;
int menuNum = 10;
if (x < menuWidth && y > (screenHeight - (menuItemHeight * menuNum + menuBarHeight))) {
int menuIndex = (y - (screenHeight - (
menuItemHeight * menuNum + menuBarHeight))) / menuItemHeight;
doMenuOK(menuIndex);
}
case Consts.S_DRAW_DIBIAO_LIST:
case Consts.S_LOCAL_SEARCH_RESULT:
case Consts.S_MAP_VIEW:
// 左右软键40*20的区域
if (x < 40 && y > (screenHeight - 20)) {
doCommandLeft();
}
if (x > (screenWidth - 40) && y > (screenHeight - 20)) {
doCommandRight();
}
break;
}
}