日食侦察员图像变化

时间:2015-08-18 09:55:26

标签: image eclipse-scout

我正在尝试更改图片视图中的图片。

我知道BaseViewController不起作用,因为它不会刷新渲染器。

因为我需要使用getTestImageField().setImageId(Icons.Logo);,所以我需要一种从setImage()类获取图片的方法。

帕特里克建议我试试

Icons

但我的问题是final IconProviderService provider = SERVICES.getService(IconProviderService.class); final IconSpec ic = provider.getIconSpec(AbstractIcons.StatusError); final byte[] content = ic.getContent(); 总是ic

在我调试时,我注意到第57行的null内部:

IconProviderService.class
无论我试图呈现的女巫图标,

@Override protected URL findResource(String fullPath) { URL[] entries = FileLocator.findEntries(m_hostBundle, new Path(fullPath)); if (entries != null && entries.length > 0) { URL url = entries[entries.length - 1]; if (LOG.isDebugEnabled()) { LOG.debug("find image " + fullPath + " in bundle " + m_hostBundle.getSymbolicName() + "->" + url); } return url; } return null; } 条目总是空的。

经过进一步调试后,我发现URL[]试图从bundle中找到片段,然后查找这些片段中的路径。 (FileLocator

line 242

Bundle[] fragments = activator.getFragments(b); 始终为空。

通常我的论坛Bundle[] fragmentsb

我想尝试不同的捆绑,所以我这样做:

(Bundle) EquinoxBundle : org.eclipse.scout.rt.ui.rap.mobile_4.0.100.20140829-1424

final BundleContext context = Activator.getDefault().getBundle().getBundleContext(); for (final Bundle b : context.getBundles()) { final IconProviderService provider = SERVICES.getService(IconProviderService.class); provider.setHostBundle(b); final IconSpec ic = provider.getIconSpec(AbstractIcons.StatusError); if (ic != null) { final byte[] content = ic.getContent(); imageField().setImage(content); } } (来自上面的代码)始终为空。

1 个答案:

答案 0 :(得分:1)

您可以获取可在图像字段中设置的图像内容(byte[]),如下所示:

IconProviderService provider = SERVICES.getService(IconProviderService.class);
byte[] content = provider.getIconSpec(Icons.YourIconName).getContent();
getImageField().setImage(content);

我很快检查了它,它对我有用。 请确保该图标可用,并按照此Wiki Article

中的说明设置图标提供程序服务