JavaFX-Dimensione icona corretta per tutte le risoluzioni dello schermo


Come posso impostare la dimensione delle icone nella mia applicazione JavaFX in base alla risoluzione dello schermo disponibile.

In questo momento ho impostato le dimensioni manualmente, ma per la bassa risoluzione sono grandi e per l'alta risoluzione sono piccole.

Modifica:

Penso che il modo migliore sarebbe scegliere tra diversi file css per le categorie di risoluzione dello schermo. È possibile con JavaFX?

Author: Studiosus, 2015-04-28

1 answers

Potresti, all'avvio della tua app fx, ottenere la risoluzione (come questa):

Rectangle2D targetScreenBounds = Screen.getPrimary().getBounds() 

E quindi imposta prefWidth e prefHeight nell'istanza icon Control di conseguenza (con una logica per rapporto), se si tratta effettivamente di un nodo javafx di cui stavi parlando.

MODIFICA : Informazioni sulla modifica dinamica della risoluzione dello schermo : non è possibile aggiungere esplicitamente un listener alla modifica della risoluzione dello schermo, AFAIK. Tuttavia, è possibile aggiungere un listener allo sfondo del palco principale. È molto probabile che sia le proprietà width e height verranno ridimensionate in base alla modifica della risoluzione dello schermo, ma devono ancora essere testate sul sistema operativo di destinazione. Se hai bisogno ad esempio di una dimensione dell'icona che sarebbe 1/20 dell'altezza del palco, potresti fare come:

Stage stage = ... //this is your app main stage
Glyph glyph = ... //this is your Icon, here it is for example from org.controlsfx.glyphfont
glyph.prefWidthProperty().bind(stage.heightProperty().divide(20));
glyph.prefHeightProperty().bind(stage.heightProperty().divide(20));
 0
Author: Jules Randolph, 2015-05-01 05:39:14