0

AbstractUIPlugin.getImageDescriptor使用图像调用图像并将图像放入图像注册表与从图像注册表调用有什么区别?

似乎两者都在做同样的工作。第一个更容易(更少的代码行!)。

这段代码:

ImageDescriptor id = Activator.getImageDescriptor("image/image.png");
Image image = id.createImage();

对比

首先放入图像注册表..

protected void initializeImageRegistry(ImageRegistry registry) {
    super.initializeImageRegistry(registry);
    Bundle bundle = Platform.getBundle(ID);

    ImageDescriptor myImage = ImageDescriptor.createFromURL(
          FileLocator.find(bundle,
                           new Path("image/image.png"),
                                    null));
    registry.put(MY_IMAGE_ID, myImage);
}

然后从图像注册表调用图像..

AbstractUIPlugin plugin = Activator.getDefault();
ImageRegistry imageRegistry = plugin.getImageRegistry();
Image myImage = imageRegistry.get(Activator.MY_IMAGE_ID);
4

1 回答 1

0

每次调用它时它都会创建单独的图像。最后你会得到“没有更多的句柄”异常。:)

 ImageDescriptor id = Activator.getImageDescriptor("image/image.png");
    Image image = id.createImage();

当您关闭应用程序时,请始终缓存图像、重复使用和处置。如果您使用ImageRegistry,AbstractUIPlugin将为您完成处理它的工作。

于 2012-09-26T04:48:08.567 回答