在Blackberry中重绘事件的钩子

时间:2010-05-26 12:47:05

标签: blackberry java-me

有没有办法将重绘回调添加到 live 屏幕对象,即不通过继承?


推理
我想从widget sdk的扩展名中绘制一个叠加层(替换为jumpy position:fixed),因此屏幕是由bbwp存根创建的。

我可以通过

获得它
Ui.getUiEngine().getActiveScreen()

并且很好地利用它,但我需要一种方法在适当的时候重绘。


注意
我已经放弃了将叠加层推向屏幕的方法,因为我无法使其透明/找到传递事件的方法。

1 个答案:

答案 0 :(得分:1)

如果要将叠加层作为屏幕推送,则应该能够通过覆盖paintBackground()方法使其背景透明,如下所示:

// Make background transparent
protected void paintBackground(Graphics graphics) {
    XYRect xy = graphics.getClippingRect();
    graphics.pushContext(xy, 0, 0);
    graphics.setGlobalAlpha(0);
    graphics.setColor(0xffffff);
    graphics.fillRect(xy.x, xy.y, xy.width, xy.height);
    graphics.popContext();
}

然后,要通过触摸事件,请覆盖以下方法,如果您不希望屏幕处理触摸事件,则返回-1:

public int getFieldAtLocation(int x, int y) {
    return -1;
}