2013-08-21 13 views
5

Voglio creare una finestra dell'interfaccia utente in libgdx in cui la parte superiore (la parte che contiene il titolo e che consente di trascinare la finestra) ha un colore di sfondo diverso dal resto della finestra. Posso solo impostare il colore di sfondo per l'intera finestra, è possibile cambiarlo solo per questa parte superiore?Colore superiore di una finestra di Scene2d.ui?

Codice finora:

WindowStyle windowStyle = new WindowStyle(new BitmapFont(), Color.WHITE, skin.newDrawable("white", Color.BLACK)); 

    Window window = new Window("test", windowStyle); 
    window.setMovable(true); 
    window.padTop(20); 

    stage.addActor(window); 
    window.setPosition(100, 100); 
    window.setSize(500, 300); 
+1

La finestra viene considerata come un singolo nove lotti. È possibile modificare direttamente la trama, ma per avere due colori diversi durante il runtime è necessario il proprio widget Finestra. – Jyro117

+0

@ Jyro117 Grazie per le informazioni. Non sono così familiare, ninepatch. Con la modifica diretta della trama intendi che includerei il colore più in alto nel file immagine su cui è basato? – mattboy

+1

È corretto, cambieresti il ​​file immagine. Ninepatch è solo un nome per una texture divisa in 9 parti secondarie e allungata per adattarsi a qualsiasi forma tu voglia. – Jyro117

risposta

6

La barra superiore per l'interfaccia utente di Windows nel libgdx utilizza la stessa texture come l'intera finestra. Per cambiare il colore della barra superiore, sarà necessario modificare il file di trama sottostante. libgdx lo considera come un tutto e non esiste un modo integrato per specificare colori separati per ogni componente di una finestra.

Ci sono altri modi, ma non sono banali e richiede la scrittura della propria classe widget per replicare la maggior parte del comportamento della classe Window integrata.

Problemi correlati