我无法在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中,这必须是我认为的浏览器的工作。
答案 0 :(得分:1)
以下代码段适用于RAP,Label
和CLabel
:
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的单帧。