Blackberry 黑莓中的setStatus()
我想在Blackberry屏幕的右下方添加一个LabelField。用于在屏幕底部设置标签 我曾经Blackberry 黑莓中的setStatus(),blackberry,blackberry-simulator,blackberry-eclipse-plugin,Blackberry,Blackberry Simulator,Blackberry Eclipse Plugin,我想在Blackberry屏幕的右下方添加一个LabelField。用于在屏幕底部设置标签 我曾经 this.setStatus(lbl_version); 这使得输出非常好,但是在labelfield后面,背景图像没有设置。标签设置在白色普通背景上。我想在背景图像和屏幕底部设置标签 请看下面的图片网址,你会有更好的想法 提前谢谢。请帮帮我 首先,确保您的LabelField有一个透明的背景,然后您应该可以看到主屏幕上设置的包含它的背景 其次,我相信你需要在主屏幕本身和它的嵌入式“主管理器”上
this.setStatus(lbl_version);
这使得输出非常好,但是在labelfield后面,背景图像没有设置。标签设置在白色普通背景上。我想在背景图像和屏幕底部设置标签
请看下面的图片网址,你会有更好的想法
提前谢谢。请帮帮我
首先,确保您的
LabelField
有一个透明的背景,然后您应该可以看到主屏幕上设置的包含它的背景
其次,我相信你需要在主屏幕本身和它的嵌入式“主管理器”上设置你的(图像)背景,以便全屏显示相同的背景
比如说,
公共类标签屏幕扩展主屏幕{
公共标签屏幕(){
超级(主屏幕.垂直滚动条|主屏幕.垂直滚动条);
Background bg=BackgroundFactory.createSolidBackground(颜色.绿色);
getMainManager().setBackground(背景);
退避地(bg);
LabelField状态=新LabelField(“你好状态”);
status.setBackground(BackgroundFactory.createSolidTransparentBackground(0,0));
设置状态(状态);
}
}
注意:我上面的例子使用了一个纯色的背景,但是它对图像背景的作用应该是相同的。我想在Nate的回答中添加这个作为注释,但是我没有足够的空间,并且我无法在注释中格式化代码
我认为内特的解决方案有效,因为他使用的是纯色,没有标题或横幅区域。我不认为它会工作时,使用位图或梯度作为背景,有一个标题或横幅
要理解答案,您需要了解主屏幕中使用的管理器。据我所知,有许多管理者在使用。一个-代表管理器,用于整个屏幕。此外,还有:
位于屏幕顶部的横幅管理器
标题管理器,位于标题管理器下
主要经理,以及
状态管理器,位于
屏幕
代理经理将为所有其他经理提供背景,如果他们是透明的。我的测试表明,横幅字段和状态字段的经理的背景是透明的。标题字段的管理器背景不是黑色的,但更改它似乎有问题
无论如何,在我的测试中,为了满足要求,您需要做的就是根据需要设置代理管理器的背景,并将MainManager的背景设置为透明
以下代码的设置方式我认为可以回答这个问题。然而,我也留下了一些注释掉的行,我建议您取消注释并注意效果。这很有趣(至少对像我这样悲伤的人来说)
最后,我可以推荐这篇文章在主屏幕上阅读一些有趣的内容。
Background transparentBackground = BackgroundFactory.createSolidTransparentBackground(0, 0);
Background gradientBackground = BackgroundFactory.createLinearGradientBackground(0X00909090, 0x00808080, 0x00E0E0E0, 0x00E8E8E8);
getMainManager().setBackground(transparentBackground);
getDelegate().setBackground(gradientBackground);
// this is the same as this.setBackground(gradientBackground);
LabelField banner = new LabelField("Hello Banner");
// banner.setBackground(gradientBackground);
setBanner(banner);
// LabelField title = new LabelField("Hello Title");
// title.setBackground(transparentBackground);
// setTitle(title);
// title.getManager().setBackground(transparentBackground);
LabelField status = new LabelField("Hello Status");
// status.setBackground(gradientBackground);
setStatus(status);
LabelField content = new LabelField("Hello Content", LabelField.FOCUSABLE);
content.setBackground(transparentBackground);
add(content);
// Following just added so that focus can be moved off the content LabelField
add(new NullField());