要快速了解问题,请参阅 Create Transparent Mainscreen in Blackberry
我面临的问题是在电视屏幕上画儿童。 我希望我的主屏幕看起来是透明/半透明的原始要求,并添加我的其他UI元素,例如管理者/领域。
因此我使用的UI元素是3个BitmapField,它应该使用BorderFactory.createSimpleBorder()创建其粗边框,并为Field.VISUAL_STATE_FOCUS和Field.VISUAL_STATE_NORMAL状态添加两种颜色。所有这些BitmapField都添加到各自的HorizontalFieldManger中,而HorizontalFieldManger又添加到屏幕上。
问题的一部分是,当我在这些BitmapFields上进行导航时,添加到BitmapFields的边框的“某个区域”不会按照指定的状态(正常,焦点)进行绘制。
其他问题是,在火炬9800上,当我从上到下导航或反之亦然时,我看到默认滚动发生应该是正常的但是在每次滚动时我的BitmapField在屏幕上移动时会留下一些尾部/裂缝滚动。
当我使用普通屏幕时不会发生这种情况(不使用subpaint使屏幕透明)。
你知道这里发生了什么......?
答案 0 :(得分:1)
YMMV,但我用这个做了一个透明的屏幕:
public class TranslucentScreen extends Screen {
public TranslucentScreen() {
super(new VerticalFieldManager(USE_ALL_WIDTH | NO_VERTICAL_SCROLL));
setBackground(BackgroundFactory.createSolidTransparentBackground(0x000000, 150));
}
protected void sublayout(int width, int height) {
setPosition(0, 0);
setExtent(width, height);
setPositionDelegate(0, 0);
layoutDelegate(width, height);
}
}
这是我制作的具有半透明黑色背景的基本弹出屏幕。我在屏幕上添加了一个VerticalFieldManager,我控制了背景画,所以它就是我想要的,然后将我的其他字段添加到那里。