libGDX 2D UI Library - Widget (Button)
概要
libGDX の 2D UI Library のうち、Button 系 Widget についてまとめます。
目次
確認環境
- OS X El Capitan (10.11.6)
- Xcode 8.0
- Android Studio 2.2.2
- Multi-OS Engine Plugin 1.2.1
- Kotlin 1.0.4
- buildToolVersion 25.0.0
- compileSdkVersion 24
- libGDX 1.9.5-SNAPSHOT
参考情報
- Scene2d.ui · libgdx/libgdx Wiki · GitHub
- Scene2d UI 公式文書。
解説
Button
Table クラスのサブクラス。
設定項目 | 型 | 説明 |
---|---|---|
child | Actor | 子の Actor。 |
style | Button.ButtonStyle | 背景の Drawable (up, down, checked, over, checkedOver, disabled)。child のオフセット (unpressedOffset[X|Y], pressedOffset[X|Y], checkedOffset[X|Y])。 |
Skin |
状態遷移(一部)
サイズ
min | pref | max | |
---|---|---|---|
width/height | prefと同じ | child のサイズ | 0 |
実行例
up | checked (offsetX = 100, offsetY = 100) |
---|---|
サンプルコード
private val actor by lazy { val imageButton = ImageButton( SpriteDrawable(Sprite(Texture("badlogic.jpg")).apply { color = Color.RED }), SpriteDrawable(Sprite(Texture("badlogic.jpg")).apply { color = Color.BLUE }), SpriteDrawable(Sprite(Texture("badlogic.jpg")).apply { color = Color.GREEN }) ) Button(imageButton, Button.ButtonStyle().apply { up = SpriteDrawable(Sprite(Texture("badlogic.jpg")).apply { color = Color.YELLOW }) down = SpriteDrawable(Sprite(Texture("badlogic.jpg")).apply { color = Color.MAGENTA }) checked = SpriteDrawable(Sprite(Texture("badlogic.jpg")).apply { color = Color.CYAN }) checkedOffsetX = 100f checkedOffsetY = 100f } ).apply { width = this@MyGdxGame.stage.width height = this@MyGdxGame.stage.height } } override fun create() { ... stage.addActor(actor) }
ImageButton
Button クラスのサブクラス。
設定項目 | 型 | 説明 |
---|---|---|
style | ImageButton.ImageButtonStyle | imageUp, imageDown, imageChecked, imageOver, imageCheckedOver, imageDisabled。加えて、Button.ButtonStyle の項目。 |
Skin |
サイズ
min | pref | max | |
---|---|---|---|
width/height | prefと同じ | image のサイズ | 0 |
実行例
up | checked |
---|---|
サンプルコード
private val actor by lazy { ImageButton( ImageButton.ImageButtonStyle().apply { up = SpriteDrawable(Sprite(Texture("badlogic.jpg")).apply { color = Color.YELLOW }) imageUp = SpriteDrawable(Sprite(Texture("badlogic.jpg")).apply { color = Color.RED }) down = SpriteDrawable(Sprite(Texture("badlogic.jpg")).apply { color = Color.MAGENTA }) imageDown = SpriteDrawable(Sprite(Texture("badlogic.jpg")).apply { color = Color.BLUE }) checked = SpriteDrawable(Sprite(Texture("badlogic.jpg")).apply { color = Color.CYAN }) imageChecked = SpriteDrawable(Sprite(Texture("badlogic.jpg")).apply { color = Color.GREEN }) disabled = SpriteDrawable(Sprite(Texture("badlogic.jpg")).apply { color = Color.GRAY }) imageDisabled = SpriteDrawable(Sprite(Texture("badlogic.jpg")).apply { color = Color.WHITE }) } ).apply { width = this@MyGdxGame.stage.width height = this@MyGdxGame.stage.height isDisabled = false } } override fun create() { ... stage.addActor(actor) }
TextButton
Button クラスのサブクラス。
設定項目 | 型 | 説明 |
---|---|---|
text | String | ボタンテキスト。改行文字 ('\n') で改行される。 |
style | TextButton.TextButtonStyle | font, fontColor, downFontColor, checkedFontColor, overFontColor, checkedOverFontColor, disabledFontColor。加えて、Button.ButtonStyle の項目 |
Skin | ||
label.* | Label の設定項目。 |
サイズ
min | pref | max | |
---|---|---|---|
width/height | prefと同じ | text が収まるサイズを算出 | 0 |
実行例
up | checked |
---|---|
サンプルコード
private val actor by lazy { TextButton("OK\n(Enter)", TextButton.TextButtonStyle().apply { font = BitmapFont() fontColor = Color.RED downFontColor = Color.BLUE checkedFontColor = Color.GREEN disabledFontColor = Color.GRAY up = SpriteDrawable(Sprite(Texture("badlogic.jpg")).apply { color = Color.YELLOW }) down = SpriteDrawable(Sprite(Texture("badlogic.jpg")).apply { color = Color.MAGENTA }) checked = SpriteDrawable(Sprite(Texture("badlogic.jpg")).apply { color = Color.CYAN }) disabled = SpriteDrawable(Sprite(Texture("badlogic.jpg")).apply { color = Color.WHITE }) } ).apply { width = this@MyGdxGame.stage.width height = this@MyGdxGame.stage.height label.setFontScale(5f, 10f) isDisabled = false } } override fun create() { ... stage.addActor(actor) }
CheckBox
TextButton クラスのサブクラス。
設定項目 | 型 | 説明 |
---|---|---|
text | String | ボタンテキスト。改行文字 ('\n') で改行される。 |
style | CheckBox.CheckBoxStyle | Drawable (checkboxOff, checkboxOn, checkboxOffDisabled, checkboxOnDisabled, checkboxOver)。 加えて、TextButton.TextButtonStyle の項目。 |
Skin | ||
label.* | Label の設定項目。 |
サイズ
min | pref | max | |
---|---|---|---|
width/height | prefと同じ | text と checkbox (Drawable) が収まるサイズを算出 | 0 |
実行例
up | checked |
---|---|
サンプルコード
private val actor by lazy { CheckBox("On", CheckBox.CheckBoxStyle().apply { font = BitmapFont() checkboxOff = SpriteDrawable(Sprite(Texture("badlogic.jpg")).apply { color = Color.RED }) checkboxOn = SpriteDrawable(Sprite(Texture("badlogic.jpg")).apply { color = Color.GREEN }) } ).apply { width = this@MyGdxGame.stage.width height = this@MyGdxGame.stage.height label.setFontScale(5f, 10f) } } override fun create() { ... stage.addActor(actor) }