【发布时间】:2015-09-04 17:08:03
【问题描述】:
我编写了一个可在 Windows 和 Linux 上使用的 Java 应用程序。该应用程序使用 TrayIcon。在 Windows 上,这可以完美运行,但在 Linux (CentOS) 上,TrayIcon 有两个问题:1) 我的 png 图像失去了透明度)和 2) 图像看起来像是向上移动了(稍后会详细介绍)。
我通过获取托盘图标大小然后相应地缩放来考虑不同的环境。这是我的代码:
Dimension trayIconSize = tray.getTrayIconSize();
Image originalImage = toolkit.getImage("tray_icon.png");
Image scaledImage = originalImage.getScaledInstance(trayIconSize.width, trayIconSize.height, Image.SCALE_SMOOTH);
trayIcon = new TrayIcon(scaledImage, "Some Text");
在 CentOS 上,.getTrayIconSize() 的返回尺寸是 24x24,但经过测试,它实际上适合 24x32 (WxH) 的图像,这说明当设置为 24x24 时图像会出现上移。
有什么办法可以保持背景透明度吗?另外,关于动态获取适当大小的图标有什么建议吗?
【问题讨论】: