首页 文章

透明的VerticalFieldManager背景

提问于
浏览
0

我的目标是在屏幕中心下方80像素处设置一个闪屏 . 加载屏幕的背景图像和动画gif非常简单,将动画gif 80px定位在中心下方也是如此 . 我的问题是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

    您可以尝试使用 paintBackground 方法绘制所有背景图像和颜色 .

    protected void paintBackground(Graphics g) {
        g.setGlobalAlpha(255);
        g.setColor(backgroundColor);
        ... more background drawing ...
    }
    
  • 0

    要修改屏幕背景,请使用

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

    你应该能够设置和成像一种颜色,无论你需要什么背景到屏幕 .

相关问题