2013-03-19 3 views
6

Ich kann nicht herausfinden, wie Checkbox Bilder Größe zu verwalten. Natürlich ist es möglich, verschiedene Bildgrößen in meinem Texturatlas zu erstellen und entsprechende zu nehmen, aber das möchte ich nicht.Größe für Checkbox-Bild in libgdx UI setzen

Hier ist mein Code:

AtlasRegion checkboxOn = AssetsHelper.textures.findRegion("checked"); 
AtlasRegion checkboxOff = AssetsHelper.textures.findRegion("unchecked"); 
CheckBoxStyle checkBoxStyle = new CheckBoxStyle(); 
checkBoxStyle.font = AssetsHelper.font66yellow; 
checkBoxStyle.checkboxOff = checkboxOff; 
checkBoxStyle.checkboxOn = checkboxOn; 
CheckBox cbSound = new CheckBox(" Sound", checkBoxStyle); 

cbSound Objekt nicht solche Methoden zum Bild der Checkbox schalen, aber es gibt Verfahren getImage(), aber es scheint nicht zu funktionieren. Diese nicht funktioniert:

cbSound.getImage().width = 120; 
cbSound.getImage().height = 120; 

FYI: zum Beispiel, wenn ich Bild zeichnen wollte habe ich wie folgt aus:

batch.draw(textureRegion, 0, 0, widthIwant, heightIwant); 

Aber in CheckBox-Klasse ist overrided nur diese (ohne Breite einstellen und Höhe):

public void draw (SpriteBatch batch, float parentAlpha) { 
    image.setRegion(isChecked ? style.checkboxOn : style.checkboxOff); 
    super.draw(batch, parentAlpha); 
} 

Frage: wie kann ich die Breite und Höhe des Kontrollkästchen Bild ändern?

Vielen Dank im Voraus.

Antwort

7

Die libgdx-Widgets verwenden Zeichnungsobjekte zum Zeichnen von Bildern. Ein ziehbar wird automatisch skaliert, um die Zelle zu passen es in ist also, um die Bildgröße zu ändern, die Zellengröße ändern.

cbSound.getCells().get(0).size(widht, height); 

Für bessere Ergebnisse sollten Sie einen neun Patch für die ziehbar verwenden.

+0

Vielen Dank, aber auch Höhe für Schauspieler 'cbSound.height = Höhe setzen müssen, denn wenn nicht als große klickbare Region (als reale Region Höhe) sein wird. – Aleksandrs

Verwandte Themen