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>
元素中定义。
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
|
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_checkable
了解附加标识符,该附加标识符可指示任何对象是否可以显示检查。
必须是布尔值,可以是“ 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
,当视图或绘图在有序集合中的第一个位置时设置。 实际使用情况可能因视图而异。 详情请参阅主机视图文档。
必须是布尔值,“ 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
状态值,当视图或绘图在有序集合的最后位置时设置。 实际使用情况可能因视图而异。 详情请参阅主机视图文档。
必须是布尔值,可以是“ 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[] 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 |
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 |
void applyTheme (Resources.Theme theme)
将指定的主题应用于此Drawable及其子项。
Parameters | |
---|---|
theme |
Resources.Theme : the theme to apply |
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 |
boolean isStateful ()
指示此drawable是否会根据状态更改其外观。 客户可以使用它来确定是否有必要计算它们的状态并调用setState。
Returns | |
---|---|
boolean |
True if this drawable changes its appearance based on state, false otherwise. |
void jumpToCurrentState ()
如果此Drawable确实在状态之间转换动画,请求它立即跳转到当前状态并跳过任何活动动画。
Drawable mutate ()
使这个drawable可变。 这个操作不能逆转。 一个可变的drawable保证不与其他drawable共享它的状态。 当你需要修改从资源加载的drawable的属性时,这是特别有用的。 默认情况下,从同一资源加载的所有可绘制实例共享一个公共状态; 如果修改一个实例的状态,则所有其他实例都将收到相同的修改。 在可变Drawable上调用此方法将不起作用。
Returns | |
---|---|
Drawable |
This drawable. |
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. |
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. |
void setConstantState (DrawableContainer.DrawableContainerState state)
Parameters | |
---|---|
state |
DrawableContainer.DrawableContainerState
|