Java Blackberry位图单击

Java Blackberry位图单击,java,eclipse,blackberry,bitmap,click,Java,Eclipse,Blackberry,Bitmap,Click,我感兴趣的是有一个位图图标,点击它会打开一个新的屏幕。目前为止,我一直在使用此链接来实现绘制位图: 此代码用于在屏幕上绘制位图,并在单击时引发操作。它有两张有焦点和无焦点的图片。我称之为: CustomMenuButtonField buttonInstance = new CustomMenuButtonField("img1.png", "img2.png"); add(buttonInstance); 我改变了: protected boolean navigationClick(in

我感兴趣的是有一个位图图标,点击它会打开一个新的屏幕。目前为止,我一直在使用此链接来实现绘制位图:

此代码用于在屏幕上绘制位图,并在单击时引发操作。它有两张有焦点和无焦点的图片。我称之为:

CustomMenuButtonField buttonInstance = new CustomMenuButtonField("img1.png", "img2.png");
add(buttonInstance);
我改变了:

protected boolean navigationClick(int status, int time)
    {
        Alert.startVibrate(50);
        //fieldChangeNotify(0);
        return true;
    }
我遇到的一个问题是,当我在field manager中单击图像外部时,图像仍然会更改,并且会引发一个动作(振动)。从这里开始,它一直保持“焦点”,直到我单击窗口上的另一个文本字段,但单击空白仍然不会改变它。我的问题是,这是否应该发生,是否有办法限制它,以便在单击位图而不是在位图周围时触发动作?还有没有一种简单的方法可以将位图缩放为更小的大小,例如图标?我试图定位4个图标,当点击时将打开四个不同的屏幕。如果有人知道这方面的任何情况,我们将不胜感激。我刚开始学习Java,所以我是一个非常新手

注意:我对黑莓API有很大的偏见。

我已经很久没有在黑莓(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);
      }
其余的都是垃圾,所以我只是把它的想法贴出来

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

然而,我希望黑莓在过去几年里已经更新了他们的API。这个项目很痛苦,大约需要10倍的工作量才能完成你认为应该完成的任务

此外,事件需要(ed?)在设备上消费,否则它们会自动传播(在侦听器上返回true以指示事件已消费)

在不知道版本和确切的API的情况下,我恐怕只能说我强烈建议遵守绝对最低要求,这样it就可以移植到所有设备上,或者尝试通过移动web界面来完成应用程序(不总是一个选项)。我发现黑莓在我的开发过程中陷入了困境,于是我放弃了它

当我使用它时,我发现从头开始画画要比让它们的组件一致工作快得多,这是可行的,而且95%的swing教程只需要很少的额外工作就可以翻译

(另外,SWT更适合API,您应该在Eclipse上查看这一点——如果您没有使用Eclipse进行Blackberry开发,请在使用它的时候拿起它。现成的RIM工具非常糟糕。)

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

我已经很久没有在黑莓(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);
      }
其余的都是垃圾,所以我只是把它的想法贴出来

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

然而,我希望黑莓在过去几年里已经更新了他们的API。这个项目很痛苦,大约需要10倍的工作量才能完成你认为应该完成的任务

此外,事件需要(ed?)在设备上消费,否则它们会自动传播(在侦听器上返回true以指示事件已消费)

在不知道版本和确切的API的情况下,我恐怕只能说我强烈建议遵守绝对最低要求,这样it就可以移植到所有设备上,或者尝试通过移动web界面来完成应用程序(不总是一个选项)。我发现黑莓在我的开发过程中陷入了困境,于是我放弃了它

当我使用它时,我发现从头开始画画要比让它们的组件一致工作快得多,这是可行的,而且95%的swing教程只需要很少的额外工作就可以翻译


(另外,SWT更适合API,您应该在Eclipse上查看这一点——如果您没有使用Eclipse进行Blackberry开发,请在使用它的时候拿起它。现成的RIM工具非常糟糕。)

阅读我的帖子。。。我认为我最好的建议是远离RIM工具包。Eclipse是我最喜欢的,现在可能还有其他可用的工具。。。我认为我最好的建议是远离RIM工具包。Eclipse是我的最爱,现在可能还有其他可用的工具。谢谢你的建议Daniel。我正在使用新的eclipse环境和从RIM网站下载的blackberry插件;eclipse插件的版本是1.5版。当您说需要使用事件时,这是否意味着我需要在代码中保留fieldChangeNotify(0)未注释?我现在正在查看您发布的建议,再次感谢!当我提到消费时:如果在一个事件上没有返回true,它将继续传播(到其他组件)。既然你提到你的屏幕会一直保持到失去焦点,我想这可能是因为你没有