J2ME app菜单开发

时间:2011-09-02 18:32:44

标签: java-me midp lcdui

我正在开发一个小型的j2me游戏,我想为这个应用程序创建一个菜单。我认为菜单是一个垂直的项目列表,左侧或右侧有一个光标,我可以在一个项目之间移动,类似于menu example,但作为主菜单。 我应该使用哪些元素来获得这样的效果?我只需要建议或链接,我会自己开发。

提前致谢!

import java.util.Vector;

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;

1 个答案:

答案 0 :(得分:0)

你的计划看起来很可行。无法提供太多链接,因为不记得任何可能有助于你正在做的事情。实际上,最有用的链接可能是MIDP(JSR 118)API参考 - 您的部分将主要是lcdui包,尤其是Graphics API。

至于建议,没问题。首先要注意的是,与之前使用隐式列表的实验相比,将会有更多编码和更多(更多)测试/调试。如果你能想到一些可能成为问题的可能的最后期限/时间要求 - 请记住先前的设计与隐式列表作为后备。它看起来不那么华丽,但它的工作安全和正确。

另一个重要的事情是确定您要定位的设备类型。对于您要开发的菜单,在使用ITU-T keypad的160x200基本手机和400x600触摸屏智能手机上获得一致的外观可能相当困难。下面我将假设您将尝试尽可能多地使用各种设备 - 请注意,您可以获得的设备越窄,编码和测试就越容易。

当定位许多不同的设备时,使用可配置为模拟各种显示尺寸和分辨率,存在或不存在触摸屏输入等的模拟器是有帮助的。请记住,虽然单独的模拟器不能完全模拟真实设备。为了让您的脚踏实地,请考虑使用真实设备定期smoke testing您的应用程序,最好使用无线(OTA)安装。

以下是我现在可以想到的一些特定的API提示。

  • 使用Canvas.getGameAction处理按下的键码 - 这可能是最可靠/最便携的方式来计算/关闭和选择菜单操作。
  • 使用Canvas.hasPointerEvents来确定是否有触摸屏支持。拥有触摸屏设备的用户如果发现您的精美菜单在点击屏幕时无法做出反应,可能会感到失望。
  • 使用Font.getHeightFont.stringWidth计算菜单项文本占用的空间。
  • 如果要在图像对象上绘制某些内容,请使用Image.getGraphics

正如我所提到的,你很可能会使用lcdui.Graphics API做很多事情。它大部分都很简单,但你可能需要了解一些关于剪辑的棘手问题。祝你好运。