Quando si tratta di UI in libGDX, troverete molto diverso da quello che avreste usato prima (yaml, json, xml, UI Builders, ecc.).
Layout tabella - Ecco come l'interfaccia utente di Scene2d è strutturata e formattata. Il link che hai fornito è un ottimo tutorial, ma come hai capito, hai bisogno di una pelle per fare la maggior parte delle cose.
LibGDX Skin - costituito da 3 elementi, un'immagine del pacchetto texture, un file del pacchetto texture e un Json per impostare gli stili. Puoi anche generarli a livello di codice come stai facendo, ma trovo molto più semplice caricarli semplicemente da un file e utilizzarli. Se volete saperne di più su come rendere le pelli, o di modificarli, ecc segui questo link: Skins.
Ora, tornando alla eccezione si stanno ottenendo. Questo perché la skin che hai creato non ha il json usato per descrivere gli stili per i vari elementi dell'interfaccia utente. Nel caso dell'eccezione precedente, l'etichetta all'interno del campo di testo non ha uno stile predefinito.
Cosa si può semplicemente fare è utilizzare il modello fornito nella cartella test:
- Atlaspack File
- Json File
- Atlaspack Image
- Font Image
- Font File
Mettere questi file nella cartella attivi del progetto Android. E allora si può facilmente caricare questo pelle con una sola riga di codice:
Skin uiSkin = new Skin(Gdx.files.internal("uiskin.json"));
questo avrà il pezzo mancante di informazioni per rendere il vostro oggetto TextField, così come un sacco di altri stili di default:
com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle: {
default: { font: default-font, fontColor: white },
}
Speriamo che questo aiuta ad iniziare. Ci sono un certo numero di altre piccole cose quindi non abbiate paura di guardare oltre l'articolo Scene2d.UI sul wiki per maggiori informazioni.
Nota: È possibile utilizzaregdx-tools
artefatto per essere in grado di utilizzare the default UI skin out-of-the-box (può essere molto utile per le piccole applicazioni semplici /, per il debug, quando sei in una vera e propria corsa per avere l'interfaccia utente visibile, ecc.).
Wow, grazie per la splendida risposta :) L'unica cosa che non riesco a capire è l'ultimo pezzo di codice? : o – AreusAstarte
@AreusAstarte è la descrizione json dello stile, vedere l'elemento 2 nell'elenco dei file sopra – noncom
il noncom è corretto, ho appena indicato quella riga di json perché è l'esatto che ti causava problemi :) – Jyro117