Как изменить фон HorizontalFieldManager

Я хочу установить фон HorizontalFieldManager. Пример кода, который я искал, устанавливает фон с помощью Gradient для фона основного экрана.

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

Затем я пытаюсь использовать тот же шаблон, чтобы установить фон для HorizontalFieldManager, поскольку у него есть этот метод. Но это не сработает. Вот код

            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);

Я использую HorizontalFieldManager и добавляю 4 BitmapField, затем использую BackgroundFactory для создания solidBackground и устанавливаю его для менеджера, но когда я его запускаю, цвет фона не применяется. Пример с градиентом работает хорошо. Есть ли что-то, что мне не хватает? Пожалуйста помогите.

Спасибо


person Ali Irawan    schedule 12.05.2011    source источник
comment
Вы можете опубликовать свое решение, на которое есть ответ, и принять его.   -  person Michael B.    schedule 12.05.2011
comment
На самом деле, я бы сказал, что вы должны опубликовать свое решение в качестве ответа и принять его.   -  person Scott W    schedule 12.05.2011
comment
можете ли вы проверить, поможет ли вам следующий код, я не уверен ... hfmthree = new HorizontalFieldManager () { protected void paint (графическая графика) { graphics.setColor (Color.WHITE); super.paint(графика); } };   -  person Jisson    schedule 13.05.2011


Ответы (1)


После выполнения некоторого глубокого веб-поиска. Вот ответ ребята

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));
person Ali Irawan    schedule 13.05.2011
comment
Я установил USE_ALL_WIDTH в конструкторе. Менеджер HorizontalFieldManager = новый HorizontalFieldManager (USA_ALL_WIDTH) ... и т. д. - person Ali Irawan; 16.05.2011