Как изменить фон для HorizontalFieldManager - PullRequest
0 голосов
/ 12 мая 2011

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

 //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 и устанавливаю его в диспетчере, но когда я его запускаю, цвет фона не применяется.Градиентный пример хорошо работает.Есть ли что-то, что я пропускаю?Пожалуйста, помогите мне.

Спасибо

1 Ответ

4 голосов
/ 13 мая 2011

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

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