Most visited

Recently visited

Added in API level 1

CompoundButton

public abstract class CompoundButton
extends Button implements Checkable

java.lang.Object
   ↳ android.view.View
     ↳ android.widget.TextView
       ↳ android.widget.Button
         ↳ android.widget.CompoundButton
Known Direct Subclasses
Known Indirect Subclasses


有两种状态的按钮,选中并取消选中。 当按下或点击按钮时,状态会自动改变。

XML属性

CompoundButton AttributesButton AttributesTextView AttributesView Attributes

Summary

Nested classes

interface CompoundButton.OnCheckedChangeListener

在复合按钮的选中状态改变时调用回调的接口定义。

XML attributes

android:button Drawable used for the button graphic (e.g. 
android:buttonTint Tint to apply to the button graphic. 
android:buttonTintMode Blending mode used to apply the button graphic tint. 

Inherited XML attributes

From class android.widget.TextView
From class android.view.View

Inherited constants

From class android.view.View

Inherited fields

From class android.view.View

Public constructors

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

Public methods

void drawableHotspotChanged(float x, float y)

只要视图热点更改并需要将其传播到视图管理的可绘制视图或子视图,就会调用此函数。

CharSequence getAccessibilityClassName()

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

Drawable getButtonDrawable()
ColorStateList getButtonTintList()
PorterDuff.Mode getButtonTintMode()
int getCompoundPaddingLeft()

返回视图的左边距,如果有的话,加左边的Drawable空间。

int getCompoundPaddingRight()

返回视图的正确填充,以及右侧Drawable(如果有)的空间。

boolean isChecked()
void jumpDrawablesToCurrentState()

在与此视图关联的所有可绘制对象上调用 Drawable.jumpToCurrentState()

void onRestoreInstanceState(Parcelable state)

吊钩允许视图重新应用以前由 onSaveInstanceState()生成的内部状态的表示。

Parcelable onSaveInstanceState()

钩子允许视图生成其内部状态的表示,稍后可用于创建具有相同状态的新实例。

boolean performClick()

调用此视图的OnClickListener(如果已定义)。

void setButtonDrawable(int resId)

设置一个可绘制的复合按钮图像作为其资源标识符。

void setButtonDrawable(Drawable drawable)

将可绘制设置为复合按钮图像。

void setButtonTintList(ColorStateList tint)

对可绘制按钮应用色调。

void setButtonTintMode(PorterDuff.Mode tintMode)

指定用于将 setButtonTintList(ColorStateList) }指定的色调应用于可绘制按钮的混合模式。

void setChecked(boolean checked)

更改此按钮的选中状态。

void setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener listener)

当这个按钮的选中状态改变时,注册一个回调被调用。

void toggle()

将视图的选中状态更改为当前状态的反转状态

Protected methods

void drawableStateChanged()

只要视图的状态发生变化,就会调用此函数,使得它影响所显示的可绘制状态。

int[] onCreateDrawableState(int extraSpace)

为此视图生成新的 Drawable状态。

void onDraw(Canvas canvas)

实施这个来做你的绘画。

boolean verifyDrawable(Drawable who)

如果你的视图子类正在显示它自己的Drawable对象,它应该覆盖这个函数,并且对于它显示的任何Drawable返回true。

Inherited methods

From class android.widget.Button
From class android.widget.TextView
From class android.view.View
From class java.lang.Object
From interface android.view.ViewTreeObserver.OnPreDrawListener
From interface android.graphics.drawable.Drawable.Callback
From interface android.view.KeyEvent.Callback
From interface android.view.accessibility.AccessibilityEventSource
From interface android.widget.Checkable

XML attributes

android:button

Drawable用于按钮图形(例如复选框,单选按钮等)。

必须是另一个资源的引用,其形式为“ @[+][package:]type:name ”,或者其形式为“一个主题属性 ?[package:][type:]name ”。

这对应于全局属性资源符号 button

相关方法:

android:buttonTint

色调适用于按钮图形。

必须是“ #rgb ”,“ #argb ”,“ #rrggbb ”或“ #aarrggbb ”形式的颜色值。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 buttonTint

相关方法:

android:buttonTintMode

混合模式用于应用按钮图形色调。

必须是下列常数值之一。

Constant Value 描述
src_over 3 The tint is drawn on top of the drawable. [Sa + (1 - Sa)*Da, Rc = Sc + (1 - Sa)*Dc]
src_in 5 The tint is masked by the alpha channel of the drawable. The drawable’s color channels are thrown out. [Sa * Da, Sc * Da]
src_atop 9 The tint is drawn above the drawable, but with the drawable’s alpha channel masking the result. [Da, Sc * Da + (1 - Sa) * Dc]
multiply 14 Multiplies the color and alpha channels of the drawable with those of the tint. [Sa * Da, Sc * Dc]
screen 15 [Sa + Da - Sa * Da, Sc + Dc - Sc * Dc]
add 16 Combines the tint and drawable color and alpha channels, clamping the result to valid color values. Saturate(S + D)

这对应于全局属性资源符号 buttonTintMode

相关方法:

Public constructors

CompoundButton

Added in API level 1
CompoundButton (Context context)

Parameters
context Context

CompoundButton

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

Parameters
context Context
attrs AttributeSet

CompoundButton

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

Parameters
context Context
attrs AttributeSet
defStyleAttr int

CompoundButton

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

Parameters
context Context
attrs AttributeSet
defStyleAttr int
defStyleRes int

Public methods

drawableHotspotChanged

Added in API level 21
void drawableHotspotChanged (float x, 
                float y)

只要视图热点更改并需要将其传播到视图管理的可绘制视图或子视图,就会调用此函数。

调度到子视图由 dispatchDrawableHotspotChanged(float, float)处理。

重写此功能时,一定要调用超类。

Parameters
x float: hotspot x coordinate
y float: hotspot y coordinate

getAccessibilityClassName

Added in API level 23
CharSequence getAccessibilityClassName ()

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

Returns
CharSequence

getButtonDrawable

Added in API level 23
Drawable getButtonDrawable ()

Returns
Drawable the drawable used as the compound button image

也可以看看:

getButtonTintList

Added in API level 21
ColorStateList getButtonTintList ()

相关XML属性:

Returns
ColorStateList the tint applied to the button drawable

也可以看看:

getButtonTintMode

Added in API level 21
PorterDuff.Mode getButtonTintMode ()

相关XML属性:

Returns
PorterDuff.Mode the blending mode used to apply the tint to the button drawable

也可以看看:

getCompoundPaddingLeft

Added in API level 1
int getCompoundPaddingLeft ()

返回视图的左边距,如果有的话,加左边的Drawable空间。

Returns
int

getCompoundPaddingRight

Added in API level 1
int getCompoundPaddingRight ()

返回视图的正确填充,以及右侧Drawable(如果有)的空间。

Returns
int

isChecked

Added in API level 1
boolean isChecked ()

Returns
boolean

jumpDrawablesToCurrentState

Added in API level 11
void jumpDrawablesToCurrentState ()

在与此视图关联的所有可绘制对象上调用 Drawable.jumpToCurrentState()

如果有一个StateListAnimator附加到这个视图,也调用 jumpToCurrentState()

onRestoreInstanceState

Added in API level 1
void onRestoreInstanceState (Parcelable state)

挂钩允许视图重新应用以前由onSaveInstanceState()生成的其内部状态的表示。 这个函数永远不会被调用为null状态。

Parameters
state Parcelable: The frozen state that had previously been returned by onSaveInstanceState().

onSaveInstanceState

Added in API level 1
Parcelable onSaveInstanceState ()

钩子允许视图生成其内部状态的表示,稍后可用于创建具有相同状态的新实例。 此状态应仅包含不持久或以后不能重建的信息。 例如,您永远不会将当前位置存储在屏幕上,因为当视图的新实例放置在其视图层次结构中时会再次计算该位置。

您可能在此处存储的某些示例:文本视图中的当前光标位置(但通常不是文本本身,因为它存储在内容提供程序或其他永久性存储中),即当前在列表视图中选择的项目。

Returns
Parcelable Returns a Parcelable object containing the view's current dynamic state, or null if there is nothing interesting to save. The default implementation returns null.

performClick

Added in API level 1
boolean performClick ()

调用此视图的OnClickListener(如果已定义)。 执行与点击相关的所有常规操作:报告辅助功能事件,播放声音等。

Returns
boolean True there was an assigned OnClickListener that was called, false otherwise is returned.

setButtonDrawable

Added in API level 1
void setButtonDrawable (int resId)

设置一个可绘制的复合按钮图像作为其资源标识符。

相关XML属性:

Parameters
resId int: the resource identifier of the drawable

setButtonDrawable

Added in API level 1
void setButtonDrawable (Drawable drawable)

将可绘制设置为复合按钮图像。

相关XML属性:

Parameters
drawable Drawable: the drawable to set

setButtonTintList

Added in API level 21
void setButtonTintList (ColorStateList tint)

对可绘制按钮应用色调。 不会修改当前着色模式,默认为SRC_IN

随后调用 setButtonDrawable(Drawable)将自动 setButtonDrawable(Drawable) drawable,并使用 setTintList(ColorStateList)应用指定的色调和色调模式。

相关XML属性:

Parameters
tint ColorStateList: the tint to apply, may be null to clear tint

也可以看看:

setButtonTintMode

Added in API level 21
void setButtonTintMode (PorterDuff.Mode tintMode)

指定用于将setButtonTintList(ColorStateList) }指定的色调应用于可绘制按钮的混合模式。 默认模式是SRC_IN

相关XML属性:

Parameters
tintMode PorterDuff.Mode: the blending mode used to apply the tint, may be null to clear tint

也可以看看:

setChecked

Added in API level 1
void setChecked (boolean checked)

更改此按钮的选中状态。

Parameters
checked boolean: true to check the button, false to uncheck it

setOnCheckedChangeListener

Added in API level 1
void setOnCheckedChangeListener (CompoundButton.OnCheckedChangeListener listener)

当这个按钮的选中状态改变时,注册一个回调被调用。

Parameters
listener CompoundButton.OnCheckedChangeListener: the callback to call on checked state change

toggle

Added in API level 1
void toggle ()

将视图的选中状态更改为当前状态的反转状态

Protected methods

drawableStateChanged

Added in API level 1
void drawableStateChanged ()

只要视图的状态发生变化,就会调用此函数,使得它影响所显示的可绘制状态。

如果View有一个StateListAnimator,它也将被调用来运行必要的状态改变动画。

重写此功能时,一定要调用超类。

onCreateDrawableState

Added in API level 1
int[] onCreateDrawableState (int extraSpace)

为此视图生成新的Drawable状态。 当缓存的Drawable状态被确定为无效时,这由视图系统调用。 要检索当前状态,您应该使用getDrawableState()

Parameters
extraSpace int: if non-zero, this is the number of extra entries you would like in the returned array in which you can place your own states.
Returns
int[] Returns an array holding the current Drawable state of the view.

onDraw

Added in API level 1
void onDraw (Canvas canvas)

实施这个来做你的绘画。

Parameters
canvas Canvas: the canvas on which the background will be drawn

verifyDrawable

Added in API level 1
boolean verifyDrawable (Drawable who)

如果你的视图子类正在显示它自己的Drawable对象,它应该覆盖这个函数,并且对于它显示的任何Drawable返回true。 这样可以安排这些可绘制的动画。

重写此功能时,一定要调用超类。

Parameters
who Drawable: The Drawable to verify. Return true if it is one you are displaying, else return the result of calling through to the super class.
Returns
boolean boolean If true than the Drawable is being displayed in the view; else false and it is not allowed to animate.

Hooray!