0

我想设置 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,并将其设置为管理器,但是当我运行它时,背景颜色不适用。渐变示例效果很好。有什么我想念的吗?请帮我。

谢谢

4

1 回答 1

4

在做了一些深度网络搜索之后。小伙伴们来看看答案

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

更新: 您必须只使用 Web 颜色,例如 0x006699FF 应该可以工作,但 0x00606A85 不能工作。如果您想要特定的颜色,我建议您使用位图。

更新: 另一种解决方案

 HorizontalFieldManager manager = new HorizontalFieldManager(Field.USE_ALL_WIDTH);
 manager.setBackground(BackgroundFactory.BackgroundFactory
            .createSolidBackground(0x00cccccc));
于 2011-05-13T14:43:49.603 回答