使用J2ME技术实现手机触摸屏开发的方法

  在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;
    }
  }