Added in API level 1

ImageButton

open class ImageButton : ImageView
kotlin.Any
   ↳ android.view.View
   ↳ android.widget.ImageView
   ↳ android.widget.ImageButton

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 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 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="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 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 Buttons guide.

XML attributes

See Button Attributes, View Attributes

Summary

Inherited XML attributes
Inherited constants
Public constructors
ImageButton(context: Context!)

ImageButton(context: Context!, attrs: AttributeSet!)

ImageButton(context: Context!, attrs: AttributeSet!, defStyleAttr: Int)

ImageButton(context: Context!, attrs: AttributeSet!, defStyleAttr: Int, defStyleRes: Int)

Public methods
open CharSequence!

open PointerIcon!
onResolvePointerIcon(event: MotionEvent!, pointerIndex: Int)

Protected methods
open Boolean
onSetAlpha(alpha: Int)

Inherited functions
Inherited properties

Public constructors

ImageButton

Added in API level 1
ImageButton(context: Context!)

ImageButton

Added in API level 1
ImageButton(
    context: Context!,
    attrs: AttributeSet!)

ImageButton

Added in API level 1
ImageButton(
    context: Context!,
    attrs: AttributeSet!,
    defStyleAttr: Int)

ImageButton

Added in API level 1
ImageButton(
    context: Context!,
    attrs: AttributeSet!,
    defStyleAttr: Int,
    defStyleRes: Int)

Public methods

getAccessibilityClassName

Added in API level 23
open fun getAccessibilityClassName(): CharSequence!

onResolvePointerIcon

Added in API level 24
open fun onResolvePointerIcon(
    event: MotionEvent!,
    pointerIndex: Int
): PointerIcon!
Parameters
event MotionEvent!: The MotionEvent that requires a pointer icon to be resolved for one of pointers.
pointerIndex Int: The index of the pointer in event for which to retrieve the PointerIcon. This will be between 0 and MotionEvent#getPointerCount().
Return
PointerIcon! the pointer icon to use for specified pointer, or null if a pointer icon is not specified and the default icon should be used.

Protected methods

onSetAlpha

Added in API level 1
protected open fun onSetAlpha(alpha: Int): Boolean
Parameters
alpha Int: The alpha (0..255) to apply to the view's drawing
Return
Boolean true if the view can draw with the specified alpha.