在EclipseRCP中正确的加载图像文件

Posted on 2005-11-29 19:21 nemo 阅读(1361) 评论(1)  编辑  收藏 所属分类: EclipseRCP/SWT/JFACE

最近一位同事也在用RCP开发,对图像文件的加载头疼不已。
想起几个月前我在开发时也有类似的事情发生,于是简单总结了一下,希望对大家有些用处。
由于Eclipse RCP 需要面向不同的平台,所以不能用一般的方法来加载图元,我们可以使用ImageDescriptor类来对图元进行加载。而且我们在加载完图元之后,必须亲自将图元dispose掉,否则有可能会导致系统资源泄漏。
实现方法一:

  1. Application文件中添加本工程的ID(String类型,只要与plugin.xml中的工程ID相同即可)
  2. 在想要获得图像文件的类中实现createImageDescriptorFor(String id)方法。

具体实现如下:

public ImageDescriptor createImageDescriptorFor(String id) //id表示图形文件相对于本工程的默认路径.

{

URL url = Platform.getBundle(pluginId).getEntry(id);//pluginId表示本工程的ID.
return ImageDescriptor.createFromURL(url);

}
实现方法二:
调用org.eclipse.ui.plugin.AbstractUIPlugin.imageDescriptorFromPlugin(String pluginId, String imageFilePath)方法。
仍然需要定义pluginId。
举例:假设我们的图像文件为本工程的/icons/image.gif。
那么我们要加载图元可以使用一下语句:
Image image1 = org.eclipse.ui.plugin.AbstractUIPlugin.imageDescriptorFromPlugin(pluginId, "/icons/image.gif");

Feedback

# re: 在EclipseRCP中正确的加载图像文件  回复  更多评论   

2006-09-01 16:14 by lovexiu111
怎么样加载eclipse自带的图元?
是不是3.0和3.2版本的方式不一样?

只有注册用户登录后才能发表评论。


网站导航:
 

posts - 21, comments - 74, trackbacks - 0, articles - 3

Copyright © nemo