libgdx API

com.badlogic.gdx.scenes.scene2d.ui
Class ImageButton

java.lang.Object
  extended by com.badlogic.gdx.scenes.scene2d.Actor
      extended by com.badlogic.gdx.scenes.scene2d.ui.Widget
          extended by com.badlogic.gdx.scenes.scene2d.ui.ImageButton
All Implemented Interfaces:
Layout

public class ImageButton
extends Widget

A button with an image on it.

Functionality

A button can be either in a pressed or unpressed state. A ImageButton.ClickListener can be registered with the ImageButton which will be called in case the button was clicked/touched.

Layout

The (preferred) width and height of an ImageButton are derrived from the border patches in the background NinePatch as well as the width and height of the TextureRegion of the image displayed inside the Imagebutton. Use Widget.setPrefSize(int, int) to programmatically change the size to your liking. In case the width and height you set are to small for the contained image you will see artifacts.

Style

An ImageButton is a Widget displaying a background NinePatch as well as image in form of a TextureRegion. The style is defined via an instance of ImageButton.ImageButtonStyle, which can be either done programmatically or via a Skin.

A Button's style definition in a skin XML file should look like this:
 <imagebutton name="styleName" 
              down="downNinePatch" 
              up="upNinePatch" 
              />
 
 
Note that the image's TextureRegion is defined at construction time or via setImageSize(float, float)

Author:
mzechner

Nested Class Summary
static interface ImageButton.ClickListener
          Interface for listening to clicked events.
static class ImageButton.ImageButtonStyle
          Defines an image button style, see ImageButton
 
Field Summary
 
Fields inherited from class com.badlogic.gdx.scenes.scene2d.ui.Widget
invalidated, prefHeight, prefWidth
 
Fields inherited from class com.badlogic.gdx.scenes.scene2d.Actor
actions, color, height, name, originX, originY, parent, rotation, scaleX, scaleY, touchable, visible, width, x, y
 
Constructor Summary
ImageButton(java.lang.String name, TextureRegion image, float imageWidth, float imageHeight, ImageButton.ImageButtonStyle style)
          Creates a new image button.
ImageButton(java.lang.String name, TextureRegion image, ImageButton.ImageButtonStyle style)
          Creates a new image button.
ImageButton(TextureRegion image, ImageButton.ImageButtonStyle style)
           
ImageButton(TextureRegion image, Skin skin)
           
 
Method Summary
 void draw(SpriteBatch batch, float parentAlpha)
          Draws the Actor.
 TextureRegion getImage()
           
 void layout()
          Positions and sizes each child of this actor.
 ImageButton setClickListener(ImageButton.ClickListener listener)
          Sets the ImageButton.ClickListener for this button.
 void setImage(TextureRegion image)
          Sets the image's TextureRegion to be used by this button.
 void setImageSize(float width, float height)
          Sets the image's size which is used irrespective of the image's TextureRegion's size.
 void setStyle(ImageButton.ImageButtonStyle style)
          Sets the style of this widget.
 boolean touchDown(float x, float y, int pointer)
           
 void touchDragged(float x, float y, int pointer)
           
 void touchUp(float x, float y, int pointer)
           
 
Methods inherited from class com.badlogic.gdx.scenes.scene2d.ui.Widget
getPrefHeight, getPrefWidth, hit, invalidate, invalidateHierarchy, setPrefSize
 
Methods inherited from class com.badlogic.gdx.scenes.scene2d.Actor
act, action, clearActions, isMarkedToRemove, keyDown, keyTyped, keyUp, markToRemove, remove, scrolled, toLocalCoordinates, toString, touchMoved
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ImageButton

public ImageButton(TextureRegion image,
                   Skin skin)

ImageButton

public ImageButton(TextureRegion image,
                   ImageButton.ImageButtonStyle style)

ImageButton

public ImageButton(java.lang.String name,
                   TextureRegion image,
                   ImageButton.ImageButtonStyle style)
Creates a new image button. The width and height will be determined by the size of the image and the style.

Parameters:
name - the name
image - the image's TextureRegion
style - the ImageButton.ImageButtonStyle

ImageButton

public ImageButton(java.lang.String name,
                   TextureRegion image,
                   float imageWidth,
                   float imageHeight,
                   ImageButton.ImageButtonStyle style)
Creates a new image button. The width and height will be determined by the size given for the image and the style

Parameters:
name - the name
image - the image's TextureRegion
imageWidth - the image's width
imageHeight - the image's height
style - the ImageButton.ImageButtonStyle
Method Detail

setStyle

public void setStyle(ImageButton.ImageButtonStyle style)
Sets the style of this widget. Calls Widget.invalidateHierarchy() internally.

Parameters:
style -

layout

public void layout()
Description copied from interface: Layout
Positions and sizes each child of this actor. Subsequent calls will not have any affect unless Layout.invalidate() is called.


draw

public void draw(SpriteBatch batch,
                 float parentAlpha)
Description copied from class: Actor
Draws the Actor. The spriteBatch is configured so that the Actor can draw in its parents coordinate system. The parent's alpha is passed to the method in order for the Actor to multiply it with its own alpha. This will allow FadeIn and other Actions to have an effect even if they are only set on the parent of the Actor.

Specified by:
draw in class Actor
Parameters:
batch - the spritebatch to render with
parentAlpha - the parent's alpha value.

touchDown

public boolean touchDown(float x,
                         float y,
                         int pointer)
Specified by:
touchDown in class Actor

touchUp

public void touchUp(float x,
                    float y,
                    int pointer)
Specified by:
touchUp in class Actor

touchDragged

public void touchDragged(float x,
                         float y,
                         int pointer)
Specified by:
touchDragged in class Actor

getImage

public TextureRegion getImage()
Returns:
the TextureRegion of the image used by this button

setImage

public void setImage(TextureRegion image)
Sets the image's TextureRegion to be used by this button. Invalidates all parents.

Parameters:
image - the image's TextureRegion

setImageSize

public void setImageSize(float width,
                         float height)
Sets the image's size which is used irrespective of the image's TextureRegion's size.

Parameters:
width - the width
height - the height

setClickListener

public ImageButton setClickListener(ImageButton.ClickListener listener)
Sets the ImageButton.ClickListener for this button.

Parameters:
listener - the listener or null
Returns:
this ImageButton for chaining.

libgdx API

Copyright 2010 Mario Zechner (contact@badlogicgames.com), Nathan Sweet (admin@esotericsoftware.com)