我正在开发我的第一个BlackBerry应用程序,我想将背景更改为黑色和所有文本(BasicEditField
标签,Label
等)白色。
我尝试在setBackground(Background bg)
上使用VerticalFieldManager
方法,但只有在我的组件运行时才会使屏幕变黑。也就是说,如果我只有 两个按钮,一个在另一个之下,背景只有黑色,直到按钮结束。因此,当屏幕上的组件较少时,屏幕为半黑半白。
有什么方法可以实现我想要的行为:
任何帮助都非常感谢!
答案 0 :(得分:4)
此代码将背景设置为黑色,将editfield设置为白色
VerticalFieldManager backg = new VerticalFieldManager(Field.USE_ALL_WIDTH | Field.USE_ALL_HEIGHT){
public void paint(Graphics graphics) {
graphics.setBackgroundColor(Color.BLACK);
graphics.clear();
super.paint(graphics);
}
};
现在将editfield添加为
EditField edit= new EditField("", "", 100, Field.FOCUSABLE){
protected void paintBackground(Graphics g) {
g.setBackgroundColor(Color.WHITE);
g.clear();
}
backg.add(edit);
add(backg);
使用g.setColor(Color.WHITE);
更改字体颜色。
答案 1 :(得分:2)
Signare的版本适用于旧版本,但从OS 4.6开始还有另一个选项。查看net.rim.device.api.ui.decor包中的类。
我正在使用它在我的某个程序中更改屏幕背景:
public class MyScreen extends MainScreen {
MyScreen() {
Background screenColor = BackgroundFactory.createSolidBackground(Color.Black);
Manager backg= getMainManager();
backg.setBackground(screenColor);
EditField edit = new EditField("", "", 100, Field.FOCUSABLE){
protected void paint(Graphics g) {
g.setColor(Color.WHITE);
super.paint(g);
}
};
Background fieldColor = BackgroundFactory.createSolidBackground(Color.BLACK);
edit.setBackground(fieldColor);
backg.add(edit);
}
}
您的所有字段都有.setBackround()
和.setBorder()
方法,可让您进行一些不错的自定义。我发现这比仅仅为了改变背景颜色而继承所有组件更容易。不幸的是,您仍然需要更改EditField
或LabelField
的文字颜色。