在没有 .desktop 文件的情况下,如何在 Unity 中为我的应用程序获取高分辨率图标?

在没有 .desktop 文件的情况下,如何在 Unity 中为我的应用程序获取高分辨率图标?

我正在尝试修复我发现的一个问题Java 应用程序。它的图标分辨率太低。阅读源代码后,我修改了它,使其具有更大的图标。SWT 使用gtk_window_set_icon()GTK 的功能来设置图标。

但是,没有使用高分辨率图标。

有一种解决方法是使用.desktop文件来描述一个漂亮的图标这里其他人描述了这个问题在 Ubuntu 论坛上

那么,如何才能获得漂亮的图标,而无需将.desktop文件放入文件系统中?我应该在哪里报告此错误?哪个软件包中的代码缩小了我打算传递给窗口管理器的图标?

我很感激对此的帮助。

可以使用以下代码重现此情况:

import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class Test {
  public static void main(String[] args) {
    Display display = new Display();

    final int SIZE = 256;
    Image large = new Image(display, SIZE, SIZE);
    GC gc = new GC(large);
    gc.setBackground(display.getSystemColor(SWT.COLOR_RED));
    gc.fillArc(0, 0, SIZE, SIZE, 45, 270);
    gc.dispose();

    Shell shell = new Shell(display);
    shell.setImages(new Image[] {  large });

    shell.open();

    while (!shell.isDisposed()) {
      if (!display.readAndDispatch())
        display.sleep();
    }

    large.dispose();
    display.dispose();
  }
}

相关内容