IntelliJ 平台插件广泛使用图标和图像。插件主要需要用于操作、自定义组件渲染器、工具窗口等的图标。
代表插件本身的插件徽标与插件中使用的图标和图像具有不同的要求。有关更多信息,请参阅插件徽标。
平台与自定义图标
插件应尽可能重用现有的平台图标。使用图标列表浏览现有图标。平台图标位于AllIcons. 插件中的图标位于相应的
如需自定义图标,请参考详细设计指南。
如何组织以及如何使用图标?
请参阅Action Basics示例插件作为参考。
处理图标和其他图像资源的最佳方法是将它们放到标记为Resources Root的专用源根目录中,例如图标或资源。
的getIcon()方法IconLoader可用于访问图标。作为参数传入的图标的路径IconLoader.getIcon() 必须以leading 开头/。
icons然后在名为将图标常量保存为静态字段的顶级包中定义一个类/接口:
爪哇
科特林
package icons;
public interface MyIcons {
Icon Action = IconLoader.getIcon(“/icons/myAction.png”, MyIcons.class);
Icon Structure = IconLoader.getIcon(“/icons/myStructure.png”, MyIcons.class);
Icon FileType = IconLoader.getIcon(“/icons/myFileType.png”, MyIcons.class);
}
从 2021.2 开始,*Icons类不需要位于icons包中,但可以使用插件的包:icons.MyIcons→ my.plugin.MyIcons。
在为或扩展点以及属性指定属性时,在plugin.xml中使用这些常量。请注意,包名称将自动添加前缀,不得指定。icon@Presentation iconicons
所需的图标大小取决于下表中列出的用途:
用法
图标大小(像素)
节点、动作、文件类型
16x16
工具窗口
13x13
编辑器排水沟
12x12
SVG 格式
自 2018.2 起支持SVG(可缩放矢量图形)图标。
由于 SVG 图标可以任意缩放,它们在 HiDPI 环境中或与更大的屏幕字体结合使用时(例如,在演示模式中)提供了更好的结果。
应提供一个基本尺寸,表示渲染图像的尺寸(在用户空间中)以 1 倍比例尺。尺寸通过width和height属性设置,省略尺寸单位。如果未指定,则默认为 16x16 像素。
一个最小的 SVG 图标文件:
用于 PNG 图标的命名符号(见下文)仍然适用。但是,@2xSVG 图标的版本仍应提供相同的基本尺寸。这种图标的图标图形可以通过双精度来更详细地表示。如果图标图形足够简单,可以在每个比例下完美呈现,则@2x可以省略版本。要生成适合基于 IntelliJ 的 IDE 的 SVG 图标,您还可以使用第三方 Web 工具IntelliJ Icon Generator。
PNG格式
如果您的插件针对 2018.2+,请考虑使用SVG 图标以获得最佳效果。
所有图标文件必须按照此命名模式放置在同一目录中(将.png替换为.svg用于 SVG 图标):
iconName.png 宽x 高像素(将用于具有默认主题的非 Retina 设备)
iconName@2x.png 2W x 2H 像素(将在具有默认主题的 Retina 设备上使用)
iconName_dark.png 宽x 高像素(将用于具有 Darcula 主题的非 Retina 设备)
iconName@2x_dark.png 2W x 2H 像素(将用于带有 Darcula 主题的 Retina 设备)
该类IconLoader将根据当前环境加载最匹配的图标。
以下是toolWindowStructure.png图标表示的示例:
主题/分辨率
文件名
图片
默认
工具窗口结构.png
工具窗口结构
达库拉
toolWindowStructure_dark.png
工具窗口结构,深色
默认 + 视网膜
toolWindowStructure@2x.png
工具窗口结构,视网膜
达库拉 + 视网膜
toolWindowStructure@2x_dark.png
工具窗口结构,视网膜,深色
动画图标
动画图标是一种显示插件现在正在执行一些长时间操作的方式。例如,当插件加载一些数据时。
任何动画图标都是一组有一定延迟的帧。
要创建新的动画图标,请使用AnimatedIcon. 如果要创建一个图标,其中帧以相同的延迟相互跟随,请使用接受延迟和图标的构造函数:
AnimatedIcon icon = new AnimatedIcon(500, AllIcons.Ide.Macro.Recording_1, AllIcons.Ide.Macro.Recording_2);
要从具有不同延迟的帧创建图标,请使用AnimatedIcon.Frame. 每帧代表一个图标,以及到下一帧的延迟。
如果你想在某个地方显示一个漫长的过程,你可以使用预定义的AnimatedIcon.Default加载器图标。这个图标有一个更大的AnimatedIcon.Big版本。