2015-03-30 15 views
7

Perché l'icona Stage è di qualità così bassa? L'immagine originale è molto meglio. Come ripararlo?Icona di bassa qualità nella barra delle applicazioni di uno stage. JavaFX

Ho usato questo codice per impostare un'immagine come stadio icona:

stage.getIcons().add(new Image("/res/app_icon.png")); 

Screenshot:
Screenshot

Icona originale:
Original icon

+0

Ridimensionare l'icona in giù per soddisfare i requisiti del sistema operativo prima della mano – MadProgrammer

+0

Ci scusiamo, ma non ho ancora capito cosa intendi. –

+0

L'icona è 300x300, l'icona della barra delle applicazioni è 32x32. Crei una versione dell'icona a 32 x 32 in modo che appaia come vuoi e non viene ridimensionata né da JavaFX né OS tramite un meccanismo che non conosci e non puoi controllare – MadProgrammer

risposta

6

Aggiornamento

Sfortunatamente l'implementazione dell'icona selettore in JavaFX 8 non sempre sceglie la migliore dimensione dell'icona per l'applicazione dall'elenco delle icone disponibili.

Vedi:

i problemi sono (al momento) prevista per essere affrontato in Java 9.

Alcuni commenti su questi temi sono:

Infatti, vetro attualmente supporta l'assegnazione di una sola icona per una finestra, non consentirà di assegnare un set di icone di dimensioni diverse. Questa funzione deve essere implementata in Glass.

-

Ho notato che quando si impostano più icone, solo l'ultima della lista restituita da getIcons() viene utilizzato. Non importa se altre icone, con risoluzioni migliori sono nella lista.

Se si fornisce un elenco di icone di diverse dimensioni, prova a mettere la dimensione che ci si aspetta da utilizzare più l'ultima della lista (forse ordinare la lista dal più piccolo al più grande o posizionare un'icona 48x48, che è la dimensione utilizzato nell'area di avvio rapido su Windows 7, come ultimo o unico elemento nell'elenco). Sfortunatamente, non ho accesso a una macchina Windows per testare la migliore dimensione dell'icona per quella piattaforma.


Linee guida icona (ma essere a conoscenza delle informazioni nell'aggiornamento sopra):

  • fornire una serie di icone di alta qualità di diverse dimensioni alla lista tornato da stage.getIcons().
  • La dimensione ottimale verrà scelta dal runtime.
  • Utilizzare l'icona standard dimensioni con cui la maggior parte dei sistemi operativi può lavorare senza ulteriore ridimensionamento (per la dimensione dell'elemento di istanza è una potenza di due o 48x48).
  • Usa immagini sorgente di alta qualità (l'immagine originale nella tua domanda sembra un po 'sfocata).
  • Per icone molto piccole, a volte una scala pura di un'icona più grande in una dimensione più piccola non è la migliore. A volte è meglio per il progettista di icone ripulire e rimuovere i dettagli complessi dalla piccola icona, che potrebbe essere OK in un'icona più grande - vedere lo discussion on icon size on Pushing Pixels per capire perché.
  • Informazioni sulle dimensioni delle icone utilizzate dai sistemi operativi in ​​this icon handbook.

stage.getIcons().addAll(
    new Image("/res/app_icon64x64.png"), 
    new Image("/res/app_icon32x32.png"), 
    new Image("/res/app_icon16x16.png") 
); 

Una grande fonte di icone di alta qualità in una varietà di formati è http://www.iconarchive.com, per esempio this refresh icon.

+0

Ho fatto come hai detto tu, ma non ha aiutato Penso che il problema non sia nel quadro generale, ma nel JavaFX. Ho creato 256x256 => 32x32 immagini e quando l'interfaccia di zoom nell'immagine di Windows diventa sfocata. [100%] (http://cdn.img42.com/33a6f1d0777b0504411be168489d3467.png) [200%] (http://cdn.img42.com/1b0f170427280921d9d2be29b2e1911d.png) [300%] (http://cdn.img42.com/a13cc4782d73199876f7891f40e622be.png) –

+0

Sì, guarda la risposta aggiornata: Ci sono delle carenze nell'implementazione di JavaFX 8 su Windows 7 per quanto riguarda la scelta dell'icona migliore - prova a posizionare solo un'icona 48x48 nell'elenco delle icone dello stage (o come ultimo elemento nell'elenco delle icone dello stage). – jewelsea

+0

in Windows non rimarranno quando faccio clic destro "pin alla barra delle applicazioni" è il comportamento predefinito? e come risolverlo? –

Problemi correlati