如何让Blackberry的背景变黑?

时间:2012-03-08 12:56:18

标签: java blackberry java-me software-design

我正在开发我的第一个BlackBerry应用程序,我想将背景更改为黑色和所有文本(BasicEditField标签,Label等)白色。

我尝试在setBackground(Background bg)上使用VerticalFieldManager方法,但只有在我的组件运行时才会使屏幕变黑。也就是说,如果我只有 两个按钮,一个在另一个之下,背景只有黑色,直到按钮结束。因此,当屏幕上的组件较少​​时,屏幕为半黑半白。

有什么方法可以实现我想要的行为:

  • 整个屏幕应为黑色
  • 所有文字标签应为白色

任何帮助都非常感谢!

2 个答案:

答案 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()方法,可让您进行一些不错的自定义。我发现这比仅仅为了改变背景颜色而继承所有组件更容易。不幸的是,您仍然需要更改EditFieldLabelField的文字颜色。