Eclipse 标签装饰器无法绘制图像

Eclipse label decorator can't draw off the image

我正在尝试创建一个标签装饰器以在我的文件图标的左上角添加一个图标。我看到小红叉可以从图标的边缘画出来,但是我的辐射符号在边缘被截断了。

l

@Override
public Image decorateImage(Image image, Object element) {
    Image failureImg = Activator.imageDescriptorFromPlugin(IMAGE PATH).createImage();


    GC gc = new GC(image);
    gc.drawImage(failureImg, 0, 0, failureImg.getImageData().width, failureImg.getImageData().height, 
            0, 0, 11, 11);
    gc.dispose();

    return image;
}

关于如何在文件图标的边界之外绘制有什么想法吗?

使用轻量级标签装饰器更容易(实现 ILightweightLabelDecorator 并在扩展点中指定 lightweight="true")。

然后您可以添加装饰图像:

@Override
public void decorate(final Object element, final IDecoration decoration)
{
  ImageDescriptor imageDescriptor = Activator.imageDescriptorFromPlugin(IMAGE PATH);

  decoration.addOverlay(imageDescriptor, IDecoration.TOP_LEFT); 
}

由于轻量级装饰器 运行 在后台线程中,它们还使 UI 响应更快。

注意:您的代码正在创建 Image 对象,而不是安排处理它们 - 这会泄漏资源句柄。轻量级装饰器没有这个问题