0

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

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

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

4

1 回答 1

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()。请注意,如果您构建Imagefrom ImageData,这些将仅包含动画 gif 的单帧。

于 2012-02-14T14:48:56.310 回答