2013-08-15 7 views
10

sto cercando di impostare l'icona di un'applicazione dalla classe specifica -desktop con:Come impostare l'icona dell'applicazione per un'applicazione desktop libGDX?

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); 
    } 
} 

L'icona non è impostata (almeno su Linux), qualche idea su come impostarlo?

+0

Forse l'immagine non viene incluso quando si esporta o meno nella giusta posizione. Come esporti? –

+0

Afaik non è necessario esportare l'immagine, è posizionata sul percorso dati corretto, il caricatore di configurazione non funzionerà se rinominerò il file così sono sicuro che verrà caricato. –

+0

Questo non è quello che intendevo. Ad esempio, se esporti da eclissi come jar, le tue risorse potrebbero non essere esportate come nella tua directory. –

risposta

9

Date un'occhiata nella api (AddIcon (...)):

Aggiunge un'icona della finestra. Le icone vengono provate nell'ordine aggiunto, viene utilizzato il primo che funziona. In genere dovrebbero essere fornite tre icone: 128x128 (per Mac), 32x32 (per Windows e Linux) e 16x16 (per Windows).

Forse l'icona ha le dimensioni sbagliate, quindi non verrà impostata. Altrimenti dovrebbe funzionare!

Solo per menzionare è sufficiente impostare la piccola icona sul bordo superiore sinistro (se l'applicazione è avviata) con esso non l'icona che si vedrebbe sul desktop! the small icon

+1

L'icona ha le dimmensioni corrette: ic_launcher.png: dati immagine PNG, 32 x 32, 8 bit/colore RGBA, non interlacciato, tuttavia non viene visualizzato. –

+2

Qualcuno ha trovato la soluzione? Non viene visualizzato anche sul mio Mac. –

+0

Quindi, come si imposta l'icona sul desktop? Questo non risponde alla domanda originale. – Jake

0

che ha portato l'icona nel mio Mac-Dock! ;) Assicurarsi di chiamare nel vostro 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! 
    } 
}