有没有办法将重绘回调添加到 live 屏幕对象,即不通过继承?
推理:
我想从widget sdk的扩展名中绘制一个叠加层(替换为jumpy position:fixed),因此屏幕是由bbwp存根创建的。
我可以通过
获得它Ui.getUiEngine().getActiveScreen()
并且很好地利用它,但我需要一种方法在适当的时候重绘。
注意:
我已经放弃了将叠加层推向屏幕的方法,因为我无法使其透明/找到传递事件的方法。
答案 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;
}