Прозрачный фон VerticalFieldManager - PullRequest
0 голосов
/ 18 августа 2010

Моя цель - создать заставку с анимированным GIF-изображением на 80 пикселей ниже центра экрана. Загрузка фонового изображения экрана и анимированного GIF-файла очень проста, так же как и размещение анимированного GIF-изображения на 80 пикселей ниже центра. Моя проблема в том, что фон VerticalFieldManager (который содержит анимированное поле GIF) заполнен белым (по умолчанию). Я могу установить цвет фона менеджера, но фоновое изображение экрана - это не просто сплошной цвет.

public final class SplashScreen extends MainScreen {
  public SplashScreen() {
    // create and load the background image BitmapField
    this.add(backgroundImage);

    // create and load the progress bar
    BitmapField progressBar = new BitmapField(progressBarImage, Field.FIELD_HCENTER | Field.USE_ALL_WIDTH | Field.NON_FOCUSABLE);

    VerticalFieldManager manager = new VerticalFieldManager(Field.USE_ALL_WIDTH | Field.FIELD_HCENTER) {
      protected void sublayout(int maxWidth, int maxHeight) {
        // positioning code...
      }
    };

    manager.add(progressBar);
    this.setStatus(manager);
  }
}

Я пробовал различные переопределения subpaint () для установки графики, но, похоже, не могу установить ничего, кроме сплошного цвета. Вызов setGlobalAlpha () также не дает желаемых результатов (как отмечено в других сообщениях).

Есть мысли?

Ответы [ 2 ]

1 голос
/ 27 августа 2010

Вы можете попробовать использовать метод paintBackground, чтобы нарисовать все фоновые изображения и цвета.

protected void paintBackground(Graphics g) {
    g.setGlobalAlpha(255);
    g.setColor(backgroundColor);
    ... more background drawing ...
}
0 голосов
/ 01 сентября 2010

Для изменения фона на экранах используйте

this.getMainManager().setBackground(...);

Вы должны быть в состоянии установить и изображение, цвет, все, что вам нужно для фона на экран.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...