Java 黑莓位图单击

标签 java eclipse blackberry bitmap click

我对一个位图图标感兴趣,单击该图标将打开一个新屏幕。现在到目前为止我一直在使用这个链接来实现位图的绘制:

Blackberry Clickable BitmapField

此代码旨在在屏幕上绘制位图并在单击时引发操作。它有两张带焦点和不带焦点的图片。我用以下方式调用它:

CustomMenuButtonField buttonInstance = new CustomMenuButtonField("img1.png", "img2.png");
add(buttonInstance);

我改变了:

protected boolean navigationClick(int status, int time)
    {
        Alert.startVibrate(50);
        //fieldChangeNotify(0);
        return true;
    }

我遇到的一个问题是,当我在字段管理器中单击图像外部时,图片仍然会发生变化并且会引发一个操作(振动)。从这里开始,它一直处于“焦点”状态,直到我单击窗口上的另一个文本字段,但单击空白区域仍然不会改变它。我的问题是这种情况是否会发生,是否有办法限制它,以便仅当您单击位图而不是在位图周围时才会引发该操作?还有一种简单的方法可以将位图缩放为更小的尺寸(例如图标)吗?我试图放置 4 个图标,单击这些图标将打开四个不同的屏幕。如果有人知道这方面的任何信息,我们将不胜感激。我刚刚开始学习 Java,所以我是一个极端的新手。

最佳答案

注意:我对 Blackberry API 抱有很大偏见。

我已经很长时间没有在 Blackberry(版本 5)软件上做过任何工作了,所以我的建议可能完全过时了。 (我想我正在工作版本 5)。

提供的组件完全不足以满足我们需要执行的任何具有自定义外观和感觉的操作,因此我们采用重写 Manager 类来创建自定义组件的方法。

//Garbage code from a dead project
      /* (non-Javadoc)
       * @see net.rim.device.api.ui.Manager#paint(net.rim.device.api.ui.Graphics)
       */
      protected void paint(Graphics graphics) {
        if(style == Spinner.DRAW_ROUNDED_RECTANGLE)
          drawRoundedRectangluar(graphics);
        else
          drawRectangular(graphics);
      }

其余部分都是垃圾,所以我只发布它的想法

如果你扩展一个可以工作的按钮并替换paint方法(与使用Swing不同,除了更加痛苦之外),你基本上可以做任何你想做的事情。这将使您能够缩放图像并执行您需要的任何操作。

但是,我希望 Blackberry 在过去几年中更新了他们的 API。这个项目很痛苦,并且花费了大约 10 倍的工作量来完成您认为应该花费的工作量。

此外,事件需要(ed?)在设备上使用,否则它们会自动传播(在监听器上返回 true 表示事件已被使用。)

在不知道版本和确切 API 的情况下,我担心除了强烈建议坚持绝对最低要求之外,我无法提供更多帮助,以便它可以移植到所有设备或尝试通过移动 Web 界面完成应用程序(并不总是一个选项)。我发现黑莓在我的开发过程中陷入了泥潭,所以我放弃了它。

在使用它时,我发现从头开始编写绘画比尝试使其组件一致工作要快,这是可行的,并且 95% 的 Swing 教程只需很少的额外工作即可翻译。

(另外,SWT 更适合 API,您应该在 Eclipse 上检查一下——如果您没有使用 Eclipse 进行 Blackberry 开发,请在使用时选择它。开箱即用的 RIM 工具很糟糕。)

关于Java 黑莓位图单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9025293/

相关文章:

java - 在 Lombok 中将字符串 Bean 资源作为 AllArgsConstructor 传递

java - 了解为什么 Java 模式与缓冲的 .java 文件中的不正确文本相匹配?

java - 如何最好地显示 JGraphX?

java - eclipse NEON 4.6 : "An error occurred while collecting items to be installed"

java - 无法运行 Blackberry Advanced UI 示例

java - 如何从响应中查找 HTTP 媒体类型(MIME 类型)?

eclipse - Selenium Webdriver 关于 destroyHarder 的错误

eclipse sh 编辑并运行

java - 黑莓浏览器问题

android - 如何在 Ubuntu 上模拟 iOS、Windows Phone 和黑莓