如何改变水平FieldManager的背景

时间:2011-05-12 15:22:29

标签: blackberry java-me horizontalfieldmanager

我想设置Horizo​​ntalFieldManager的背景。 我一直在搜索的示例代码是使用Gradient为主屏幕背景设置背景。

 //create gradient linear for background
 this.getMainManager().setBackground(BackgroundFactory.createLinearGradientBackground(0x0099CCFF,
                            0x0099CCFF,0x00336699,0x00336699)
                        );

然后我尝试使用相同的模式将背景设置为Horizo​​ntalFieldManager,因为它具有此方法。但它不会起作用。这是代码

            HorizontalFieldManager hManager = new HorizontalFieldManager();

    Bitmap bitmapImage = null;

    bitmapImage = Bitmap.getBitmapResource("img/home.png");
    tabHome = new BitmapField(bitmapImage, BitmapField.FOCUSABLE
            | BitmapField.HIGHLIGHT_FOCUS);

    bitmapImage = Bitmap.getBitmapResource("img/in.png");
    tabCheckInOut = new BitmapField(bitmapImage, BitmapField.FOCUSABLE
            | BitmapField.HIGHLIGHT_FOCUS);

    bitmapImage = Bitmap.getBitmapResource("img/barcode.png");
    tabBarcode = new BitmapField(bitmapImage, BitmapField.FOCUSABLE
            | BitmapField.HIGHLIGHT_FOCUS);

    bitmapImage = Bitmap.getBitmapResource("img/options.png");
    tabOptions = new BitmapField(bitmapImage, BitmapField.FOCUSABLE
            | BitmapField.HIGHLIGHT_FOCUS);

    tabHome.setFocusListener(this);
    tabCheckInOut.setFocusListener(this);
    tabBarcode.setFocusListener(this);
    tabOptions.setFocusListener(this);

    Background topBack = BackgroundFactory.createSolidBackground(0x00606A85);
    hManager.setBackground(topBack);

    hManager.add(tabHome);
    hManager.add(tabCheckInOut);
    hManager.add(tabBarcode);
    hManager.add(tabOptions);

    add(hManager);

我正在使用Horizo​​ntalFieldManager并添加4个BitmapField,然后我使用BackgroundFactory创建solidBackground,并将其设置为manager 但是当我运行它时,背景颜色不适用。渐变示例效果很好。有什么我想念的吗?请帮帮我。

由于

1 个答案:

答案 0 :(得分:4)

做了一些深度网络搜索。这是答案人

HorizontalFieldManager manager = new HorizontalFieldManager()
{
    public void paint(Graphics graphics)
    {
        graphics.setBackgroundColor(0x000000FF);//blue
        graphics.clear();
        super.paint(graphics);
    }
};

<强>更新 您只能使用Web Color 例如0x006699FF应该工作 但0x00606A85不起作用。 如果你想要一种特定的颜色,我建议你使用位图。

<强>更新 另一个解决方案

 HorizontalFieldManager manager = new HorizontalFieldManager(Field.USE_ALL_WIDTH);
 manager.setBackground(BackgroundFactory.BackgroundFactory
            .createSolidBackground(0x00cccccc));