Крюк для перерисовки события в Blackberry - PullRequest
0 голосов
/ 26 мая 2010

Есть ли способ добавить перерисованный обратный вызов к живому экранному объекту, т.е. не через наследование?


Рассуждения
Я хочу нарисовать наложение из расширения для виджета SDK (заменяя положение Jumpy: исправлено), поэтому экран создается заглушкой BBWP.

Я могу получить это

Ui.getUiEngine().getActiveScreen()

и рисовать на нем довольно хорошо, но мне нужен способ перерисовать, когда это уместно.


Примечание
Я отказался от подхода выдвигать оверлей как экран, потому что я не мог сделать его прозрачным / найти способ пропустить события.

1 Ответ

1 голос
/ 26 мая 2010

Если вы хотите выдвинуть наложение как экран, вы сможете сделать его фон прозрачным, переопределив метод 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;
}
...