无法获得GIF动画

时间:2012-02-13 10:24:49

标签: eclipse-plugin eclipse-rap

我无法在CLabel中获得动画GIF动画。我也试过Label。

final CLabel lblSpinner = new CLabel(this, SWT.NONE);
lblSpinner.setImage(SWTResourceManager.getImage(Installation_4.class, "/resources/spinner_anim_16.gif"));

怎么了?仅显示第一个GIF。在RCP中,我必须以编程方式制作动画,但在RAP中,这必须是我认为的浏览器的工作。

1 个答案:

答案 0 :(得分:1)

以下代码段适用于RAP,LabelCLabel

public class AnimatedGifSnippet implements IEntryPoint {

  public int createUI() {
    Display display = new Display();
    Shell shell = new Shell( display );
    shell.setLayout( new GridLayout() );

    Image image = createImage( display, "resources/loading.gif" );
    Label label = new Label( shell, SWT.NONE );
    label.setImage( image );

    shell.layout();
    shell.open();
    return 0;
  }

  private Image createImage( Display display, String resourceName ) {
    ClassLoader classLoader = getClass().getClassLoader();
    InputStream inputStream = classLoader.getResourceAsStream( resourceName );
    if( inputStream == null ) {
      throw new IllegalArgumentException( "Resource not found: " + resourceName );
    }
    try {
      return new Image( display, inputStream );
    } finally {
      try {
        inputStream.close();
      } catch( IOException exception ) {
        // TODO handle exception
      }
    }
  }
}

如果这不适用于您的图像,则问题出在图像图像本身。否则,您必须在SWTResourceManager.getImage()方法中做错事。请注意,如果您从Image构建ImageData,则这些只会包含动画gif的单帧。