Most visited

Recently visited

Added in API level 21

AnimatedStateListDrawable

public class AnimatedStateListDrawable
extends StateListDrawable

java.lang.Object
   ↳ android.graphics.drawable.Drawable
     ↳ android.graphics.drawable.DrawableContainer
       ↳ android.graphics.drawable.StateListDrawable
         ↳ android.graphics.drawable.AnimatedStateListDrawable


Drawable包含一组Drawable关键帧,其中当前显示的关键帧是基于当前状态集选择的。 关键帧之间的动画可以可选地使用过渡元素来定义。

这个drawable可以用一个带有<animated-selector>元素的XML文件来定义。 每个关键帧Drawable都是在嵌套的<item>元素中定义的。 转换在嵌套的<transition>元素中定义。

Summary

XML attributes

android:state_activated State value for StateListDrawable, set when a view or its parent has been "activated" meaning the user has currently marked it as being of interest. 
android:state_active State value for StateListDrawable, set when a view or drawable is considered "active" by its host. 
android:state_checkable State identifier indicating that the object may display a check mark. 
android:state_checked State identifier indicating that the object is currently checked. 
android:state_enabled State value for StateListDrawable, set when a view is enabled. 
android:state_first State value for StateListDrawable, set when a view or drawable is in the first position in an ordered set. 
android:state_focused State value for StateListDrawable, set when a view has input focus. 
android:state_last State value for StateListDrawable, set when a view or drawable is in the last position in an ordered set. 
android:state_middle State value for StateListDrawable, set when a view or drawable is in the middle position in an ordered set. 
android:state_pressed State value for StateListDrawable, set when the user is pressing down in a view. 
android:state_selected State value for StateListDrawable, set when a view (or one of its parents) is currently selected. 
android:state_single State value for StateListDrawable, set when a view or drawable is considered "single" by its host. 
android:state_window_focused State value for StateListDrawable, set when a view's window has input focus. 

Inherited XML attributes

From class android.graphics.drawable.StateListDrawable

Public constructors

AnimatedStateListDrawable()

Public methods

void addState(int[] stateSet, Drawable drawable, int id)

向这组关键帧添加一个新的可绘制对象。

<T extends Drawable & Animatable> void addTransition(int fromId, int toId, T transition, boolean reversible)

在关键帧之间添加新的转换。

void applyTheme(Resources.Theme theme)

将指定的主题应用于此Drawable及其子项。

void inflate(Resources r, XmlPullParser parser, AttributeSet attrs, Resources.Theme theme)

从可选的由主题设计的XML资源中扩展此Drawable。

boolean isStateful()

指示此drawable是否会根据状态更改其外观。

void jumpToCurrentState()

如果此Drawable确实在状态之间转换动画,请求它立即跳转到当前状态并跳过任何活动动画。

Drawable mutate()

使这个drawable可变。

boolean setVisible(boolean visible, boolean restart)

设置此Drawable是否可见。

Protected methods

boolean onStateChange(int[] stateSet)

如果您认识到指定的状态,请在您的子类中覆盖此内容以更改外观。

void setConstantState(DrawableContainer.DrawableContainerState state)

Inherited methods

From class android.graphics.drawable.StateListDrawable
From class android.graphics.drawable.DrawableContainer
From class android.graphics.drawable.Drawable
From class java.lang.Object
From interface android.graphics.drawable.Drawable.Callback

XML attributes

android:state_activated

StateListDrawable状态值,当视图或其父项已被“激活”时设置,表示用户当前已将其标记为感兴趣。 这是state_checked的替代表示,用于状态应该沿视图层次传播的时间。

必须是布尔值,可以是“ true ”或“ false ”。

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

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

android:state_active

StateListDrawable状态值,当一个视图或drawable被主机视为“活动”时设置。 实际使用情况可能因视图而异。 详情请参阅主机视图文档。

必须是布尔值,可以是“ true ”或“ false ”。

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

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

android:state_checkable

指示对象可以显示复选标记的状态标识符。 有关标识符的信息,请参阅state_checked ,该标识符指示是否实际检查。

必须是布尔值,可以是“ true ”或“ false ”。

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

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

android:state_checked

指示对象当前被检查的状态标识符。 无论当前是否设置了state_checkable ,请参阅state_checkable了解附加标识符,该附加标识符可指示任何对象是否可以显示检查。

必须是布尔值,可以是“ true ”或“ false ”。

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

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

android:state_enabled

启用视图时设置的 StateListDrawable状态值。

必须是布尔值,可以是“ true ”或“ false ”。

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

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

android:state_first

状态值为StateListDrawable ,当视图或绘图在有序集合中的第一个位置时设置。 实际使用情况可能因视图而异。 详情请参阅主机视图文档。

必须是布尔值,“ true ”或“ false ”。

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

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

android:state_focused

当视图具有输入焦点时设置的 StateListDrawable状态值。

必须是布尔值,可以是“ true ”或“ false ”。

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

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

android:state_last

StateListDrawable状态值,当视图或绘图在有序集合的最后位置时设置。 实际使用情况可能因视图而异。 详情请参阅主机视图文档。

必须是布尔值,可以是“ true ”或“ false ”。

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

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

android:state_middle

StateListDrawable状态值,当视图或绘图在有序集中的中间位置时设置。 实际使用情况可能因视图而异。 详情请参阅主机视图文档。

必须是布尔值,“ true ”或“ false ”。

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

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

android:state_pressed

StateListDrawable状态值,用户在视图中按下时设置。

必须是布尔值,可以是“ true ”或“ false ”。

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

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

android:state_selected

StateListDrawable状态值,当当前选择视图(或其父项之一)时设置。

必须是布尔值,“ true ”或“ false ”。

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

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

android:state_single

StateListDrawable状态值,当视图或绘图被主机视为“单个”时设置。 实际使用情况可能因视图而异。 详情请参阅主机视图文档。

必须是布尔值,可以是“ true ”或“ false ”。

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

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

android:state_window_focused

StateListDrawable状态值,当视图的窗口具有输入焦点时设置。

必须是布尔值,可以是“ true ”或“ false ”。

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

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

Public constructors

AnimatedStateListDrawable

Added in API level 21
AnimatedStateListDrawable ()

Public methods

addState

Added in API level 21
void addState (int[] stateSet, 
                Drawable drawable, 
                int id)

向这组关键帧添加一个新的可绘制对象。

Parameters
stateSet int: An array of resource IDs to associate with the keyframe
drawable Drawable: The drawable to show when in the specified state, may not be null
id int: The unique identifier for the keyframe

addTransition

Added in API level 21
void addTransition (int fromId, 
                int toId, 
                T transition, 
                boolean reversible)

在关键帧之间添加新的转换。

Parameters
fromId int: Unique identifier of the starting keyframe
toId int: Unique identifier of the ending keyframe
transition T: An Animatable drawable to use as a transition, may not be null
reversible boolean: Whether the transition can be reversed

applyTheme

Added in API level 21
void applyTheme (Resources.Theme theme)

将指定的主题应用于此Drawable及其子项。

Parameters
theme Resources.Theme: the theme to apply

inflate

Added in API level 21
void inflate (Resources r, 
                XmlPullParser parser, 
                AttributeSet attrs, 
                Resources.Theme theme)

从可选的由主题设计的XML资源中扩展此Drawable。 对于每个Drawable,这不能被调用一次以上。 请注意,框架可能已经调用过这一次从XML资源创建Drawable实例。

Parameters
r Resources: Resources used to resolve attribute values
parser XmlPullParser: XML parser from which to inflate this Drawable
attrs AttributeSet: Base set of attribute values
theme Resources.Theme: Theme to apply, may be null
Throws
XmlPullParserException
IOException

isStateful

Added in API level 21
boolean isStateful ()

指示此drawable是否会根据状态更改其外观。 客户可以使用它来确定是否有必要计算它们的状态并调用setState。

Returns
boolean True if this drawable changes its appearance based on state, false otherwise.

jumpToCurrentState

Added in API level 21
void jumpToCurrentState ()

如果此Drawable确实在状态之间转换动画,请求它立即跳转到当前状态并跳过任何活动动画。

mutate

Added in API level 21
Drawable mutate ()

使这个drawable可变。 这个操作不能逆转。 一个可变的drawable保证不与其他drawable共享它的状态。 当你需要修改从资源加载的drawable的属性时,这是特别有用的。 默认情况下,从同一资源加载的所有可绘制实例共享一个公共状态; 如果修改一个实例的状态,则所有其他实例都将收到相同的修改。 在可变Drawable上调用此方法将不起作用。

Returns
Drawable This drawable.

setVisible

Added in API level 21
boolean setVisible (boolean visible, 
                boolean restart)

设置此Drawable是否可见。 这通常不会影响Drawable的行为,但它是一些可供Drawables使用的提示,例如,可以决定是否运行动画。

Parameters
visible boolean: Set to true if visible, false if not.
restart boolean: You can supply true here to force the drawable to behave as if it has just become visible, even if it had last been set visible. Used for example to force animations to restart.
Returns
boolean boolean Returns true if the new visibility is different than its previous state.

Protected methods

onStateChange

Added in API level 21
boolean onStateChange (int[] stateSet)

如果您认识到指定的状态,请在您的子类中覆盖此内容以更改外观。

Parameters
stateSet int
Returns
boolean Returns true if the state change has caused the appearance of the Drawable to change (that is, it needs to be drawn), else false if it looks the same and there is no need to redraw it since its last state.

setConstantState

Added in API level 21
void setConstantState (DrawableContainer.DrawableContainerState state)

Parameters
state DrawableContainer.DrawableContainerState

Hooray!