在EclipseRCP中正確的加載圖像文件
Posted on 2005-11-29 19:21 nemo 閱讀(1372) 評論(1) 編輯 收藏 所屬分類: EclipseRCP/SWT/JFACE最近一位同事也在用RCP開發(fā),對圖像文件的加載頭疼不已。
想起幾個(gè)月前我在開發(fā)時(shí)也有類似的事情發(fā)生,于是簡單總結(jié)了一下,希望對大家有些用處。
由于Eclipse RCP 需要面向不同的平臺,所以不能用一般的方法來加載圖元,我們可以使用ImageDescriptor類來對圖元進(jìn)行加載。而且我們在加載完圖元之后,必須親自將圖元dispose掉,否則有可能會導(dǎo)致系統(tǒng)資源泄漏。
實(shí)現(xiàn)方法一:
- 在Application文件中添加本工程的ID(String類型,只要與plugin.xml中的工程ID相同即可)。
- 在想要獲得圖像文件的類中實(shí)現(xiàn)createImageDescriptorFor(String id)方法。
具體實(shí)現(xiàn)如下:
public ImageDescriptor createImageDescriptorFor(String id) //id表示圖形文件相對于本工程的默認(rèn)路徑.
{
URL url = Platform.getBundle(pluginId).getEntry(id);//pluginId表示本工程的ID.
return ImageDescriptor.createFromURL(url);
}
實(shí)現(xiàn)方法二:
調(diào)用org.eclipse.ui.plugin.AbstractUIPlugin.imageDescriptorFromPlugin(String pluginId, String imageFilePath)方法。
仍然需要定義pluginId。
舉例:假設(shè)我們的圖像文件為本工程的/icons/image.gif。
那么我們要加載圖元可以使用一下語句:
Image image1 = org.eclipse.ui.plugin.AbstractUIPlugin.imageDescriptorFromPlugin(pluginId, "/icons/image.gif");