public class StateListAnimator
extends Object
implements Cloneable
java.lang.Object | |
↳ | android.animation.StateListAnimator |
根据视图的可绘制状态,让您定义将在附加视图上运行的动画师数量。
它可以在具有<selector>
元素的XML文件中定义。 每个状态动画器都在嵌套的<item>
元素中定义。
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
|
用于每个孩子的动画。
必须是另一个资源的引用,其形式为“ @[+][package:]type:name
”,或者其形式为“一个主题属性 ?[package:][type:]name
”。
这对应于全局属性资源符号 animation
。
StateListDrawable
状态值,当视图或其父项已被“激活”时设置,表示用户当前已将其标记为感兴趣。 这是state_checked的替代表示,用于状态应该沿视图层次传播的时间。
必须是布尔值,可以是“ true
”或“ false
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 state_activated
。
StateListDrawable
状态值,当一个视图或drawable被主机视为“活动”时设置。 实际使用情况可能因视图而异。 详情请参阅主机视图文档。
必须是布尔值,可以是“ true
”或“ false
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 state_active
。
指示对象可以显示复选标记的状态标识符。 请参阅state_checked
以获取指示是否实际检查的标识符。
必须是布尔值,即“ true
”或“ false
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 state_checkable
。
指示对象当前被检查的状态标识符。 请参阅state_checkable
了解一个附加标识符,该附加标识符可以指示任何对象是否可以显示检查,而不管当前是否设置了state_checked。
必须是布尔值,可以是“ true
”或“ false
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 state_checked
。
状态值为 StateListDrawable
,启用视图时设置。
必须是布尔值,即“ true
”或“ false
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 state_enabled
。
StateListDrawable
状态值,当一个视图或drawable位于有序集合中的第一个位置时设置。 实际使用情况可能因视图而异。 详情请参阅主机视图文档。
必须是布尔值,可以是“ true
”或“ false
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 state_first
。
状态值为 StateListDrawable
,当视图具有输入焦点时设置。
必须是布尔值,可以是“ true
”或“ false
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 state_focused
。
StateListDrawable
状态值,当视图或drawable位于有序集合的最后位置时设置。 实际使用情况可能因视图而异。 详情请参阅主机视图文档。
必须是布尔值,可以是“ true
”或“ false
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 state_last
。
StateListDrawable
状态值,当视图或绘图在有序集中的中间位置时设置。 实际使用情况可能因视图而异。 详情请参阅主机视图文档。
必须是布尔值,可以是“ true
”或“ false
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 state_middle
。
StateListDrawable
状态值,用户在视图中按下时设置。
必须是布尔值,可以是“ true
”或“ false
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 state_pressed
。
StateListDrawable
状态值,当当前选择视图(或其父项之一)时设置。
必须是布尔值,可以是“ true
”或“ false
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 state_selected
。
StateListDrawable
状态值,当主机将视图或可绘制视为“单个”时设置。 实际使用情况可能因视图而异。 详情请参阅主机视图文档。
必须是布尔值,可以是“ true
”或“ false
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 state_single
。
状态值为 StateListDrawable
,当视图的窗口具有输入焦点时设置。
必须是布尔值,可以是“ true
”或“ false
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 state_window_focused
。
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 |
StateListAnimator clone ()
创建并返回此对象的副本。 “复制”的确切含义可能取决于对象的类别。 一般意图是,对于任何对象x
,表达式:
will be true, and that the expression:x.clone() != x
will bex.clone().getClass() == x.getClass()
true
, but these are not absolute requirements. While it is typically the case that:
will bex.clone().equals(x)
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. |
void jumpToCurrentState ()
如果有最近状态变化的动画运行,则结束它。
这会导致动画将最终值分配给视图。