Most visited

Recently visited

Added in API level 21

StateListAnimator

public class StateListAnimator
extends Object implements Cloneable

java.lang.Object
   ↳ android.animation.StateListAnimator


根据视图的可绘制状态,让您定义将在附加视图上运行的动画师数量。

它可以在具有<selector>元素的XML文件中定义。 每个状态动画器都在嵌套的<item>元素中定义。

Summary

XML attributes

android:animation Animation to use on each child. 
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. 

Public constructors

StateListAnimator()

Public methods

void addState(int[] specs, Animator animator)

将给定的动画师与提供的可绘制状态规范关联起来,以便在视图的可绘制状态与规范匹配时运行。

StateListAnimator clone()

创建并返回此对象的副本。

void jumpToCurrentState()

如果有最近状态变化的动画运行,则结束它。

Inherited methods

From class java.lang.Object

XML attributes

android:animation

用于每个孩子的动画。

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

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

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_checked。

必须是布尔值,可以是“ 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状态值,当一个视图或drawable位于有序集合中的第一个位置时设置。 实际使用情况可能因视图而异。 详情请参阅主机视图文档。

必须是布尔值,可以是“ 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状态值,当视图或drawable位于有序集合的最后位置时设置。 实际使用情况可能因视图而异。 详情请参阅主机视图文档。

必须是布尔值,可以是“ 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

StateListAnimator

Added in API level 21
StateListAnimator ()

Public methods

addState

Added in API level 21
void addState (int[] specs, 
                Animator animator)

将给定的动画师与提供的可绘制状态规范关联起来,以便在视图的可绘制状态与规范匹配时运行。

Parameters
specs int: The drawable state specs to match against
animator Animator: The animator to run when the specs match

clone

Added in API level 21
StateListAnimator clone ()

创建并返回此对象的副本。 “复制”的确切含义可能取决于对象的类别。 一般意图是,对于任何对象x ,表达式:

 x.clone() != x
will be true, and that the expression:
 x.clone().getClass() == x.getClass()
will be true, but these are not absolute requirements. While it is typically the case that:
 x.clone().equals(x)
will be true, this is not an absolute requirement.

按照惯例,返回的对象应该通过调用super.clone获得。 如果一个类和它的所有超类( Object除外)都遵守这个约定,那么情况就是x.clone().getClass() == x.getClass()

按照惯例,这个方法返回的对象应该独立于这个对象(被克隆)。 为了实现这种独立性,可能需要在返回super.clone之前修改返回的对象的一个或多个字段。 通常,这意味着复制包含被克隆对象的内部“深层结构”的任何可变对象,并将这些对象的引用替换为对这些副本的引用。 如果一个类仅包含原始字段或对不可变对象的引用,那么通常情况下不需要修改由super.clone返回的对象中的字段。

Object的方法clone执行特定的克隆操作。 首先,如果该对象的类没有实现接口Cloneable ,则引发CloneNotSupportedException 请注意,所有数组都被视为实现接口Cloneable并且数组类型T[]clone方法的返回类型为T[] ,其中T是任何引用或基本类型。 否则,此方法创建该对象的类的新实例,并使用该对象的相应字段的内容来初始化其所有字段,就像通过赋值一样; 这些字段的内容本身并不克隆。 因此,此方法执行此对象的“浅拷贝”,而不是“深拷贝”操作。

Object本身并不实现接口 Cloneable ,所以在其类 Object的对象上调用 clone方法将导致在运行时抛出异常。

Returns
StateListAnimator a clone of this instance.

jumpToCurrentState

Added in API level 21
void jumpToCurrentState ()

如果有最近状态变化的动画运行,则结束它。

这会导致动画将最终值分配给视图。

Hooray!