19

我正在尝试从 -desktop 特定类设置一个应用程序图标:

package org.osgameseed.games.animalflip;

import com.badlogic.gdx.Files;
import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;

public class Main {
    public static void main(String[] args) {
        LwjglApplicationConfiguration cfg = new LwjglApplicationConfiguration();
        cfg.title = "AnimalFlip";
        cfg.useGL20 = false;
        cfg.width = 800;
        cfg.height = 600;
        cfg.addIcon("data/ic_launcher.png", Files.FileType.Internal);

        new LwjglApplication(new AnimalFlipGame(), cfg);
    }
}

该图标未设置(至少在Linux上),关于如何设置它的任何想法?

4

2 回答 2

16

看一下 api (addIcon(...)):

添加一个窗口图标。按照添加的顺序尝试图标,使用第一个有效的图标。通常应提供三个图标:128x128(适用于 Mac)、32x32(适用于 Windows 和 Linux)和 16x16(适用于 Windows)。

也许您的图标尺寸错误,因此无法设置。否则它应该工作!

顺便提一下,您只是将小图标设置在左上边缘(如果应用程序已启动),而不是您在桌面上看到的图标!
小图标

于 2013-08-15T21:54:16.120 回答
0

将 Icon 带入了我的 Mac-Dock!;) 一定要在你的 Lwjgl-Thread 中调用它

/**
 * workaround for Mac
 */
private static void setApplicationIcon() {
    try {
        Class<?> cls = Class.forName("com.apple.eawt.Application");
        Object application = cls.newInstance().getClass().getMethod("getApplication").invoke(null);

        FileHandle icon = Gdx.files.local("icons/icon.png");
        application.getClass().getMethod("setDockIconImage", java.awt.Image.class)
                .invoke(application, new ImageIcon(icon.file().getAbsolutePath()).getImage());
    } catch (Exception e) {
        // nobody cares!
    }
}
于 2017-08-17T13:30:59.010 回答