public class TransitionDrawable
extends LayerDrawable
implements Drawable.Callback
java.lang.Object | |||
↳ | android.graphics.drawable.Drawable | ||
↳ | android.graphics.drawable.LayerDrawable | ||
↳ | android.graphics.drawable.TransitionDrawable |
LayerDrawables的扩展,旨在在第一层和第二层之间交叉淡化。 要开始转换,请致电startTransition(int)
。 要仅显示第一层,请致电resetTransition()
。
它可以使用<transition>
元素在XML文件中定义。 转换中的每个Drawable都在嵌套的<item>
定义。 有关更多信息,请参阅指南Drawable Resources 。
XML attributes |
|
---|---|
android:bottom |
Bottom inset to apply to the layer. |
android:drawable |
Drawable used to render the layer. |
android:id |
Identifier of the layer. |
android:left |
Left inset to apply to the layer. |
android:right |
Right inset to apply to the layer. |
android:top |
Top inset to apply to the layer. |
Inherited XML attributes |
|
---|---|
From class android.graphics.drawable.LayerDrawable
|
Inherited constants |
---|
From class android.graphics.drawable.LayerDrawable
|
Public constructors |
|
---|---|
TransitionDrawable(Drawable[] layers) 用指定的图层列表创建可绘制的新转场。 |
Public methods |
|
---|---|
void |
draw(Canvas canvas) 在其边界(通过setBounds设置)中绘制,考虑可选效果,如alpha(通过setAlpha设置)和color filter(通过setColorFilter设置)。 |
boolean |
isCrossFadeEnabled() 指示是否为此转换启用淡入淡出。 |
void |
resetTransition() 只显示第一层。 |
void |
reverseTransition(int duration) 颠倒过渡,挑选当前过渡的地方。 |
void |
setCrossFadeEnabled(boolean enabled) 启用或禁用drawable的淡入淡出。 |
void |
startTransition(int durationMillis) 开始第一层之上的第二层。 |
Inherited methods |
|
---|---|
From class android.graphics.drawable.LayerDrawable
|
|
From class android.graphics.drawable.Drawable
|
|
From class java.lang.Object
|
|
From interface android.graphics.drawable.Drawable.Callback
|
底部插入应用于图层。
必须是维度值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp
”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 bottom
。
可绘制用于渲染图层。
必须是另一个资源的引用,其形式为“ @[+][package:]type:name
”,或者其形式为“一个主题属性 ?[package:][type:]name
”。
这对应于全局属性资源符号 drawable
。
图层的标识符。 这可用于从可绘制容器中检索图层。
必须是另一个资源的引用,其形式为“ @[+][package:]type:name
”,或者其形式为“一个主题属性 ?[package:][type:]name
”。
这对应于全局属性资源符号 id
。
左插入应用于图层。
必须是维度值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp
”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 left
。
右插入适用于图层。
必须是尺寸值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp
”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 right
。
顶部插入适用于图层。
必须是尺寸值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp
”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 top
。
TransitionDrawable (Drawable[] layers)
用指定的图层列表创建可绘制的新转场。 该drawable需要至少2层才能正常工作。
Parameters | |
---|---|
layers |
Drawable
|
void draw (Canvas canvas)
在其边界(通过setBounds设置)中绘制,考虑可选效果,如alpha(通过setAlpha设置)和color filter(通过setColorFilter设置)。
Parameters | |
---|---|
canvas |
Canvas : The canvas to draw into |
boolean isCrossFadeEnabled ()
指示是否为此转换启用淡入淡出。
Returns | |
---|---|
boolean |
True if cross fading is enabled, false otherwise. |
void reverseTransition (int duration)
颠倒过渡,挑选当前过渡的地方。 如果转换当前不在运行,则将以指定的持续时间开始转换。 如果转换已经运行,将使用最后一次已知的持续时间。
Parameters | |
---|---|
duration |
int : The duration to use if no transition is running. |
void setCrossFadeEnabled (boolean enabled)
启用或禁用drawable的淡入淡出。 当淡入淡出被禁用时,第一个drawable始终被绘制为不透明。 启用淡入淡出功能后,第一个可绘制对象将与第二个可绘制对象的相反α绘制。 交叉淡入淡出在默认情况下被禁用。
Parameters | |
---|---|
enabled |
boolean : True to enable cross fading, false otherwise. |
void startTransition (int durationMillis)
开始第一层之上的第二层。
Parameters | |
---|---|
durationMillis |
int : The length of the transition in milliseconds |