public class


extends ImageView
   ↳ android.view.View
     ↳ android.widget.ImageView
       ↳ android.widget.ImageButton
Known Direct Subclasses

Class Overview

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 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 android:src attribute in the <ImageButton> XML element or by the 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="">
     <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 -->

Save the XML file in your project res/drawable/ folder and then reference it as a drawable for the source of your ImageButton (in the 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 <item> 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 android:state_pressed and android:state_focused have both evaluated false.

See the Form Stuff tutorial.

XML attributes

See Button Attributes, View Attributes


Inherited XML Attributes
From class android.widget.ImageView
From class android.view.View
Inherited Constants
From class android.view.View
Public Constructors
ImageButton(Context context)
ImageButton(Context context, AttributeSet attrs)
ImageButton(Context context, AttributeSet attrs, int defStyle)
Protected Methods
boolean onSetAlpha(int alpha)
Invoked if there is a Transform that involves alpha.
Inherited Methods
From class android.widget.ImageView
From class android.view.View
From class java.lang.Object
From interface
From interface android.view.KeyEvent.Callback
From interface android.view.accessibility.AccessibilityEventSource

Public Constructors

public ImageButton (Context context)

Since: API Level 1

public ImageButton (Context context, AttributeSet attrs)

Since: API Level 1

public ImageButton (Context context, AttributeSet attrs, int defStyle)

Since: API Level 1

Protected Methods

protected boolean onSetAlpha (int alpha)

Since: API Level 1

Invoked if there is a Transform that involves alpha. Subclass that can draw themselves with the specified alpha should return true, and then respect that alpha when their onDraw() is called. If this returns false then the view may be redirected to draw into an offscreen buffer to fulfill the request, which will look fine, but may be slower than if the subclass handles it internally. The default implementation returns false.

alpha The alpha (0..255) to apply to the view's drawing
  • true if the view can draw with the specified alpha.