`
dadi520
  • 浏览: 145678 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

eclipse Image的使用

阅读更多

原文请看: http://www.eclipse.org/articles/Article-Using%20Images%20In%20Eclipse/Using%20Images%20In%20Eclipse.html

 

一 eclipse Image 的分类

 

 1. org.eclipse.swt.graphics.Image, 代表一个重量级的对象,它在内存中处理数据, 它持有一个底层OS资源的一个句柄, 如果你不需要它时, 一定要手动关闭。

 

 2. org.eclipse.jface.resource.ImageDescriptor, 一个轻量级对象, 它调用createImage() 方法生成Image.

3. org.eclipse.jface.resource.ImageRegistry, 如果某一些Image对象被频繁使用,则我们可以把它共享出来。 还有一种方式是 LabelProvider.

二. 在Plug.xml 中定义Image

在plug.xml中定义Image的优点

  a. 所有的创建,销毁工作有Platform 来完成,用户不必操心.

  b. 如果更换图片也很容易, 只要在xml中重新配置即可.    

  c. 懒加载机制, 图片只有在真正需要的时候才会被加载.

 

 

三、在custon ui 中添加Image

   

public class MyAction extends Action {
  private static ImageDescriptor image;
  static {
    URL url = null;
    try {
    url = new URL(MyPlugin.getInstance().getDescriptor().getInstallURL(),
                  "images/my_action.gif");
    } catch (MalformedURLException e) {
    }
    image = ImageDescriptor.createFromURL(url);
  }
	

 

三.五 Viewer 和 LabelProvider

public class FruitLabelProvider extends LabelProvider {
    private Image appleImage = new Image(…);
    private Image kiwiImage = new Image(…);
    public Image getImage(Object object) {
        if (object.getClass() == Apple.class) {
            return appleImage;
        }
        if (object.getClass() == Kiwi.class) {
            return kiwiImage;
        }
        return null;
    }
    public String getLabel(Object o) {
        //return appropriate labels for the various fruits
    }
    public void dispose() {
        appleImage.dispose();
        appleImage = null;
        kiwiImage.dispose();
        kiwiImage = null;
    }
}

 

 

这些创建的Image必须要在dispose() 方法中销毁。

 

 

四. ImageRegistry

ImageRegistry 是用于频繁使用的Image的, Image的创建和销毁有 插件来管理, 当plug-in shutdown时

, ImageRegistry也跟做销毁Image。

 

org.eclipse.ui.plugin.AbstractUIPlugin.getImageRegistry() 方法得到

 

 

五,Using Global Images Provided by Other Plug-ins

PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FILE);

 

Important: Images provided by these APIs are shared, which means you must not dispose of them.  Again, following the general rule, since you didn't create the image, it's not your responsibility to dispose of it.

分享到:
评论

相关推荐

    Developing ImageJ Plugins in Eclipse.docx

    3. 添加ImageJ库:为了使用ImageJ的图像处理函数,需要添加ImageJ的库文件ij.jar到项目中。在Eclipse中,可以通过点击"Add external JARs..."按钮来添加库文件。 4. 配置项目依赖项:在添加库文件后,需要配置项目...

    Mulit-Image-Selector eclipse版

    而`multi-image-selector`可能是该类库的源代码或资源文件夹,开发者需要将这个文件夹导入到Eclipse项目中,以便使用类库提供的功能。 总的来说,`Mulit-Image-Selector eclipse版`是一个实用的Android图片选择解决...

    org.eclipse.swt.win32

    org.eclipse.swt.internal.image.JPEGArithmeticConditioningTable.class org.eclipse.swt.internal.image.JPEGComment.class org.eclipse.swt.internal.image.JPEGDecoder.class org.eclipse.swt.internal.image....

    eclipse使用的photoview的jar包

    在Android开发中,Eclipse是一款曾经广泛使用的集成开发环境(IDE)。当开发者需要在应用程序中处理图片,特别是实现图片的缩放功能时,Photoview是一个非常实用的库。Photoview库允许用户通过手势轻松地对图片进行...

    universal-image-loader Eclipse版本的demo

    universal-image-loader的源码只支持android studio,这里有一份用Eclipse编译的版本,有需要的同学,赶紧下载吧,

    Image Processing with ImageJ

    通过对《使用ImageJ进行图像处理》这本书的学习,读者不仅能掌握ImageJ的基本使用方法,还能深入了解其高级功能和开发技巧。无论是在科学研究还是工业应用中,ImageJ都将成为一个不可或缺的工具。此外,随着社区的...

    AndroidImageSlider_eclipse

    **AndroidImageSlider_eclipse**项目是一个专为Android平台设计的图片滑动库,它已经被优化以便在Eclipse集成开发环境中使用。这个库主要用于创建动态、交互式的图片滑动展示,通常用于应用程序的启动页、产品展示...

    Eclipse+Java+OpenCV246人脸识别

    在本项目中,我们主要探讨如何使用Eclipse集成开发环境,结合Java编程语言以及OpenCV 2.4.6库来实现人脸识别的功能。OpenCV是一个强大的计算机视觉库,它提供了丰富的图像处理和计算机视觉功能,而Java作为面向对象...

    ImageEditor-Android-master 的eclipse版本

    总的来说,“ImageEditor-Android-master”的Eclipse版本为开发者提供了一个全面的图像编辑工具集,通过学习和使用这个项目,开发者不仅可以提升图像处理技能,也能更好地理解Android图形处理和UI交互的底层机制,...

    mac Eclipse安装包

    在Mac上,Eclipse通常以.dmg(Disk Image)格式的文件提供,类似于Windows的.exe可执行文件。在提供的压缩包中,我们看到有一个名为"Eclipse Installer.app"的文件,这就是Eclipse的安装程序。 安装步骤如下: 1. ...

    Eclipse导出类图时序图(亲测),安装截图

    在本文中,我们将深入探讨如何在Eclipse集成开发环境中导出类图和时序图,以及如何确保这一过程在最新版本的Eclipse中...通过正确安装和使用UML插件,可以有效地利用类图和时序图提高代码的可读性和项目的可维护性。

    eclipse解压版

    选择适合的Amazon Machine Image (AMI),如Ubuntu或Amazon Linux,然后选择合适的实例类型,确保有足够的资源来运行Eclipse。 一旦EC2实例准备就绪,可以通过SSH连接到该实例。使用`scp`命令将Eclipse的压缩包上传...

    Eclipse编写的Java屏幕截屏Demo

    在本文中,我们将深入探讨如何使用Eclipse IDE和Java编程语言来实现屏幕截屏功能。Eclipse是一款广泛使用的开源集成开发环境(IDE),主要用于Java、C++、Python等多种编程语言的开发。在这个“Eclipse编写的Java...

    Eclipse RCP 打印表格.zip

    在Eclipse RCP中,表格组件通常使用 SWT (Standard Widget Toolkit) 或 JFace 的 TableViewer 类来创建。SWT 是一个与平台无关的库,提供了与操作系统原生控件的直接交互,而JFace是基于SWT的更高级抽象,简化了UI...

    eclipse的jface功能练习

    "然后转换成图形显示"可能意味着将每个字母转换为某种视觉表示,比如使用CLabel或ImageLabel,它们可以结合图像和文本,或者使用自定义的Graphics2D绘图。如果要以图形形式展示,可能涉及到SWT的Canvas组件,允许...

    Eclipse拖拉界面讲解

    Eclipse是一款广泛使用的开源集成开发环境(IDE),特别适用于Java开发。其强大的功能之一是支持拖放界面设计,这主要是通过SWT Designer插件实现的。SWT Designer是WindowBuilder的一部分,它提供了一种可视化的...

    Eclipse平台扩展点清单

    此扩展点用于定义标记注解规范(Marker Annotation Specification),用于定义如何使用标记作为注解。 **4. org.eclipse.ui.editors.markerUpdaters** 此扩展点用于定义标记更新器(Marker Updater),用于更新...

    eclipse开发图标

    Eclipse是一款广泛使用的开源集成开发环境(IDE),尤其在Java开发者中非常流行。它提供了丰富的扩展功能,其中一个关键部分就是插件系统。Eclipse RCP(Rich Client Platform)是Eclipse平台的一个组件,允许开发者...

Global site tag (gtag.js) - Google Analytics