FileDocCategorySizeDatePackage
ImageButton.javaAPI DocAndroid 5.1 API4328Thu Mar 12 22:22:10 GMT 2015android.widget

ImageButton

public class ImageButton extends ImageView

Displays a button with an image (instead of text) that can be pressed or clicked by the user. By default, an ImageButton looks like a regular {@link android.widget.Button}, with the standard button background that changes color during different button states. The image on the surface of the button is defined either by the {@code android:src} attribute in the {@code } XML element or by the {@link #setImageResource(int)} method.

To remove the standard button background image, define your own background image or set the background color to be transparent.

To indicate the different button states (focused, selected, etc.), you can define a different image for each state. E.g., a blue image by default, an orange one for when focused, and a yellow one for when pressed. An easy way to do this is with an XML drawable "selector." For example:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/button_pressed" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/button_focused" /> <!-- focused -->
<item android:drawable="@drawable/button_normal" /> <!-- default -->
</selector>

Save the XML file in your project {@code res/drawable/} folder and then reference it as a drawable for the source of your ImageButton (in the {@code android:src} attribute). Android will automatically change the image based on the state of the button and the corresponding images defined in the XML.

The order of the {@code } elements is important because they are evaluated in order. This is why the "normal" button image comes last, because it will only be applied after {@code android:state_pressed} and {@code android:state_focused} have both evaluated false.

See the Buttons guide.

XML attributes

See {@link android.R.styleable#ImageView Button Attributes}, {@link android.R.styleable#View View Attributes}

Fields Summary
Constructors Summary
public ImageButton(android.content.Context context)

        this(context, null);
    
public ImageButton(android.content.Context context, android.util.AttributeSet attrs)

        this(context, attrs, com.android.internal.R.attr.imageButtonStyle);
    
public ImageButton(android.content.Context context, android.util.AttributeSet attrs, int defStyleAttr)

        this(context, attrs, defStyleAttr, 0);
    
public ImageButton(android.content.Context context, android.util.AttributeSet attrs, int defStyleAttr, int defStyleRes)

        super(context, attrs, defStyleAttr, defStyleRes);
        setFocusable(true);
    
Methods Summary
public voidonInitializeAccessibilityEvent(android.view.accessibility.AccessibilityEvent event)

        super.onInitializeAccessibilityEvent(event);
        event.setClassName(ImageButton.class.getName());
    
public voidonInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo info)

        super.onInitializeAccessibilityNodeInfo(info);
        info.setClassName(ImageButton.class.getName());
    
protected booleanonSetAlpha(int alpha)

        return false;