【问题标题】:J2ME - Soft keyboard / Virtual keyboard library?J2ME - 软键盘/虚拟键盘库?
【发布时间】:2015-05-28 16:15:07
【问题描述】:

我创建了一个 J2ME 应用程序(每个屏幕都使用 Canvas 进行自定义编码),它在带有键盘的设备上运行良好,但是当设备没有键盘和虚拟键盘/键盘时(例如,一些诺基亚 Asha 设备)应用无法使用。

是否有可以插入我的应用程序的键盘/小键盘库?

我需要键盘/小键盘的主要原因是该应用有一个搜索屏幕 (Canvas),用户可以在其中输入查询。

【问题讨论】:

    标签: java-me touch libraries virtual-keyboard


    【解决方案1】:

    我不知道任何图书馆,但我想我只是分享一下我自己通常是如何做的。

    我通常通过将屏幕分成 9 或 12 个不可见区域来实现自己的触摸输入。左上方的字段等于按 1。上方的中心字段等于按 2,依此类推。 您通过pointerPressed() 接收这些输入,然后简单地检查用户在屏幕上按下的位置,并相应地调用keyPressed()

    例如

    public void pointerPressed(int x, int y) {
      if (x < width/3 && y < height/4) keyPressed(KEY_NUM1);
      else if (x >= width/3 && x < width*2/3 && y < height/4) keyPressed(KEY_NUM2);
      else if (x >= width*2/3 && y < height/4) keyPressed(KEY_NUM3);
      ...and so forth
    }
    

    如果您愿意,您可以在 GUI 顶部添加一个半透明的键盘图形层,例如检查hasPointerEvents()后。

    我在我的许多应用中都使用了这种方法,并发现它比其他必须点击屏幕上的非常小的按钮的解决方案效果更好。

    【讨论】:

    • 谢谢。据推测,在显示 TextBox 屏幕时,所有触摸屏设备都必须显示虚拟键盘/键盘? (如果是这样,我可以使用触摸事件来显示 TextBox 屏幕。)
    • 是的,使用TextBox 是另一种选择。 (但我以为你严格使用Canvas)。
    • 是的,这是最初的要求,但 TextBox 可能是一个不错的折衷方案。
    • 应该没问题。我自己在 lublu.dk/SimpleList.jar 中使用了这种方法(允许您通过 FTP 连接在文本文件中添加/删除行。我自己将其用作购物清单)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-30
    • 1970-01-01
    • 2013-01-03
    • 2015-01-02
    • 2013-04-02
    相关资源
    最近更新 更多