【发布时间】:2012-10-08 12:54:51
【问题描述】:
我在 HFM 的 3 个位图字段中添加 3 个图像。它使用拨轮水平滚动,但我希望图像像字幕文本一样自动滚动。 我得到了线索 display scroll text like marquee 但是如何用图片替换呢?
【问题讨论】:
标签: blackberry java-me blackberry-simulator blackberry-eclipse-plugin blackberry-jde
我在 HFM 的 3 个位图字段中添加 3 个图像。它使用拨轮水平滚动,但我希望图像像字幕文本一样自动滚动。 我得到了线索 display scroll text like marquee 但是如何用图片替换呢?
【问题讨论】:
标签: blackberry java-me blackberry-simulator blackberry-eclipse-plugin blackberry-jde
说你的 TimerTask 增加名为 int currentScroll
的滚动量您必须在自定义字段的绘制方法中处理图像。这是一个图像滚动的示例(如果图像比您的屏幕大):
Bitmap bmp = this.getBitmap1();
int width = bmp .getWidth();
graphics.drawBitmap(0, 0, width , bmp.getHeight(), bmp, currentScroll, 0)
【讨论】:
CustomBitmapField extends BitmapField 3 次以获得 3 张图像,而不像 MarqueeLabel extends LabelField 调用一次吗? MarqueeLabel 包含整个标签,因此它在一次调用 super() 时被绘制,但这里我有 3 个位图。如果我只需要调用它 1 次,那么如何调用 super(bitmap)? (请参阅上面的链接以滚动字幕)。
onFocus() 和onUnfocus() 中有一些例外。我从那里打电话给invalidate(),以便在集中注意力的同时改变一些边框效果。我做得对吗?请纠正我。
paint() 中设置边框,并从onFocus() 和onUnFocus() 调用invalidate()。因此调用paint() 2 次。我认为当onFocus() 被调用时会出现异常。
BitmapField imageField = new BitmapField(Bitmap.getBitmapResource("sync.png"),
Field.FOCUSABLE);
Border imageFieldBorder = BorderFactory.createBevelBorder(edges, new XYEdges(Color.BLACK, Color.BLACK, Color.BLACK,Color.BLACK), new XYEdges(Color.WHITESMOKE, Color.WHITESMOKE,Color.WHITESMOKE, Color.WHITESMOKE));
imageField.setBorder(imageFieldBorder);
你也可以改变边框的颜色
【讨论】: