Most visited

Recently visited

Added in API level 1

ImageButton

public class ImageButton
extends ImageView

java.lang.Object
   ↳ android.view.View
     ↳ android.widget.ImageView
       ↳ android.widget.ImageButton
Known Direct Subclasses


显示带有可由用户按下或点击的图像(而不是文本)的按钮。 默认情况下,ImageButton看起来像普通的Button ,标准按钮背景在不同的按钮状态期间会改变颜色。 按钮表面上的图像由<ImageButton> XML元素中的android:src属性或setImageResource(int)方法定义。

要移除标准按钮背景图像,请定义您自己的背景图像或将背景颜色设置为透明。

要指示不同的按钮状态(聚焦,选定等),可以为每个状态定义不同的图像。 例如,默认情况下为蓝色图像,聚焦时为橙色图像,按下时为黄色。 一个简单的方法是使用XML可绘制的“选择器”。 例如:

 <?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>

将XML文件保存在项目res/drawable/文件夹中,然后将其作为ImageButton源代码的可绘制对象(在android:src属性中) android:src Android将根据按钮的状态和XML中定义的相应图像自动更改图像。

<item>元素的顺序很重要,因为它们按顺序进行评估。 这就是为什么“正常”按钮图像最后一次出现,因为它只会在android:state_pressedandroid:state_focused都被评估为false之后应用。

参见 Buttons指南。

XML属性

Button AttributesView Attributes

Summary

Inherited XML attributes

From class android.widget.ImageView
From class android.view.View

Inherited constants

From class android.view.View

Inherited fields

From class android.view.View

Public constructors

ImageButton(Context context)
ImageButton(Context context, AttributeSet attrs)
ImageButton(Context context, AttributeSet attrs, int defStyleAttr)
ImageButton(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)

Public methods

CharSequence getAccessibilityClassName()

返回此对象的类名称以用于辅助功能。

Protected methods

boolean onSetAlpha(int alpha)

如果存在涉及alpha的变换,则调用。

Inherited methods

From class android.widget.ImageView
From class android.view.View
From class java.lang.Object
From interface android.graphics.drawable.Drawable.Callback
From interface android.view.KeyEvent.Callback
From interface android.view.accessibility.AccessibilityEventSource

Public constructors

ImageButton

Added in API level 1
ImageButton (Context context)

Parameters
context Context

ImageButton

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

Parameters
context Context
attrs AttributeSet

ImageButton

Added in API level 1
ImageButton (Context context, 
                AttributeSet attrs, 
                int defStyleAttr)

Parameters
context Context
attrs AttributeSet
defStyleAttr int

ImageButton

Added in API level 21
ImageButton (Context context, 
                AttributeSet attrs, 
                int defStyleAttr, 
                int defStyleRes)

Parameters
context Context
attrs AttributeSet
defStyleAttr int
defStyleRes int

Public methods

getAccessibilityClassName

Added in API level 23
CharSequence getAccessibilityClassName ()

返回此对象的类名称以用于辅助功能。 如果子类正在实现的东西应该被视为一个全新的视图类,当它被可访问性使用时,子类只应该覆盖这个子类,与它所源自的类无关。 这用于填写AccessibilityNodeInfo.setClassName

Returns
CharSequence

Protected methods

onSetAlpha

Added in API level 1
boolean onSetAlpha (int alpha)

如果存在涉及alpha的变换,则调用。 可以使用指定的alpha绘制自己的子类应该返回true,然后在调用onDraw()时尊重该alpha。 如果这返回false,那么视图可能会被重定向到一个离屏缓冲区来完成请求,这看起来很好,但是可能比子类在内部处理它要慢。 默认实现返回false。

Parameters
alpha int: The alpha (0..255) to apply to the view's drawing
Returns
boolean true if the view can draw with the specified alpha.

Hooray!