Most visited

Recently visited

Added in API level 19

TransitionSet

public class TransitionSet
extends Transition

java.lang.Object
   ↳ android.transition.Transition
     ↳ android.transition.TransitionSet
Known Direct Subclasses


TransitionSet是子过渡的父代(包括其他TransitionSet)。 使用TransitionSets可以实现更复杂的转换编排,其中一些组播放ORDERING_TOGETHER ,其他播放ORDERING_SEQUENTIAL 例如, AutoTransition使用TransitionSet顺序播放淡入淡出(Fade.OUT),然后是ChangeBounds ,然后是淡入淡出(Fade.OUT)转换。

通过使用标签transitionSet以及标准属性TransitionSetTransition ,可以在资源文件中描述Transition 可以通过在封闭的transitionSet标签内添加这些子标签来加载TransitionSet对象的子过渡。 例如,下面的xml描述了一个TransitionSet,它在受影响的视图目标上播放一个淡入淡出,然后是一个ChangeBounds转换:

     <transitionSet xmlns:android="http://schemas.android.com/apk/res/android"
             android:transitionOrdering="sequential">
         <fade/>
         <changeBounds/>
     </transitionSet>
 

Summary

Inherited XML attributes

From class android.transition.Transition

Constants

int ORDERING_SEQUENTIAL

一个标志,用于表示该组的儿童转换应该按顺序播放; 当一个孩子转换结束时,下一个孩子转换开始。

int ORDERING_TOGETHER

一个标志,用于表示该组的子过渡应该同时开始。

Inherited constants

From class android.transition.Transition

Public constructors

TransitionSet()

构造一个空的转换集。

TransitionSet(Context context, AttributeSet attrs)

Public methods

TransitionSet addListener(Transition.TransitionListener listener)

将侦听器添加到通过动画生命周期发送事件的侦听器集,例如start,repeat和end。

TransitionSet addTarget(View target)

设置此Transition对动画制作感兴趣的目标视图实例。

TransitionSet addTarget(int targetId)

添加此Transition对动画感兴趣的目标视图的ID。

TransitionSet addTarget(Class targetType)

添加此Transition对动画感兴趣的目标视图的Class。

TransitionSet addTarget(String targetName)

添加此Transition对动画感兴趣的目标视图的transitionName。

TransitionSet addTransition(Transition transition)

将子过渡添加到此集。

void captureEndValues(TransitionValues transitionValues)

在结束场景中捕获此转换监视的属性的值。

void captureStartValues(TransitionValues transitionValues)

捕获此转场监视的属性在开始场景中的值。

TransitionSet clone()

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

Transition excludeTarget(View target, boolean exclude)

是否将给定目标添加到要从此转换中排除的目标列表。

Transition excludeTarget(Class type, boolean exclude)

是否将给定类型添加到要从此过渡中排除的类型列表。

Transition excludeTarget(String targetName, boolean exclude)

是否将给定的transitionName添加到目标transitionNames的列表中以从此过渡中排除。

Transition excludeTarget(int targetId, boolean exclude)

是否将给定的ID添加到目标ID列表中以从此过渡中排除。

int getOrdering()

返回此TransitionSet的排序。

Transition getTransitionAt(int index)

返回TransitionSet中指定位置的子Transition。

int getTransitionCount()

返回TransitionSet中子变换的数量。

TransitionSet removeListener(Transition.TransitionListener listener)

从侦听此动画的集合中删除侦听器。

TransitionSet removeTarget(int targetId)

从该Transition对动画感兴趣的id列表中移除给定的targetId。

TransitionSet removeTarget(View target)

从该转换对动画感兴趣的目标列表中删除给定的目标。

TransitionSet removeTarget(String target)

从Transition转换对动画感兴趣的transitionNames列表中删除给定的targetName。

TransitionSet removeTarget(Class target)

从该转换对动画感兴趣的目标列表中删除给定的目标。

TransitionSet removeTransition(Transition transition)

从该组中删除指定的子过渡。

TransitionSet setDuration(long duration)

在TransitionSet上设置非负的持续时间会导致所有子过渡(当前和将来)继承此持续时间。

void setEpicenterCallback(Transition.EpicenterCallback epicenterCallback)

设置回调以用于查找转场的震中。

TransitionSet setInterpolator(TimeInterpolator interpolator)

设置此转换的插补器。

TransitionSet setOrdering(int ordering)

设置此套儿童转场的播放顺序。

void setPathMotion(PathMotion pathMotion)

设置用于计算二维插值的算法。

void setPropagation(TransitionPropagation propagation)

设置确定动画制作者启动延迟的方法。

TransitionSet setStartDelay(long startDelay)

设置此转换的startDelay。

Inherited methods

From class android.transition.Transition
From class java.lang.Object

Constants

ORDERING_SEQUENTIAL

Added in API level 19
int ORDERING_SEQUENTIAL

一个标志,用于表示该组的儿童转换应该按顺序播放; 当一个孩子转换结束时,下一个孩子转换开始。 请注意,转换不会结束,直到它的所有实例(在转换的所有适用目标上播放)结束。

常数值:1(0x00000001)

ORDERING_TOGETHER

Added in API level 19
int ORDERING_TOGETHER

一个标志,用于表示该组的子过渡应该同时开始。

常量值:0(0x00000000)

Public constructors

TransitionSet

Added in API level 19
TransitionSet ()

构造一个空的转换集。 通过调用addTransition(Transition) )}将子过渡添加到集合中。 默认情况下,子过渡将播放together

TransitionSet

Added in API level 21
TransitionSet (Context context, 
                AttributeSet attrs)

Parameters
context Context
attrs AttributeSet

Public methods

addListener

Added in API level 19
TransitionSet addListener (Transition.TransitionListener listener)

将侦听器添加到通过动画生命周期发送事件的侦听器集,例如start,repeat和end。

Parameters
listener Transition.TransitionListener: the listener to be added to the current set of listeners for this animation.
Returns
TransitionSet This transition object.

addTarget

Added in API level 19
TransitionSet addTarget (View target)

设置此Transition对动画制作感兴趣的目标视图实例。 默认情况下,没有目标,并且Transition将侦听场景的sceneRoot下面的每个视图的变化。 设定目标会限制转换只能监听并执行这些视图。 所有其他视图将被忽略。

目标列表类似于targetId列表,不同之targetId于此列表指定了实际的View实例,而不是视图的ID。 当场景变化涉及单独膨胀的视图层次时,这是一个重要的区别; 不同的视图可以共享相同的ID,但实际上不是相同的实例。 如果过渡应该把这些意见相同,则addTarget(int)应该用来代替addTarget(View) 另一方面,如果场景变化涉及全部在相同视图层次内的变化,则在不一定具有对其设置ID的视图中,则目标视图列表可能更方便。

Parameters
target View: A View on which the Transition will act, must be non-null.
Returns
TransitionSet The Transition to which the target is added. Returning the same object makes it easier to chain calls during construction, such as transitionSet.addTransitions(new Fade()).addTarget(someView);

addTarget

Added in API level 19
TransitionSet addTarget (int targetId)

添加此Transition对动画感兴趣的目标视图的ID。 默认情况下,没有targetIds,并且Transition将侦听场景的sceneRoot下面的每个视图的变化。 设置targetIds会限制转换仅侦听并操作带有这些ID的视图。 具有不同ID的视图或任何ID都将被忽略。

请注意,使用ID指定目标意味着ID应该在场景根下的视图层次结构中是唯一的。

Parameters
targetId int: The id of a target view, must be a positive number.
Returns
TransitionSet The Transition to which the targetId is added. Returning the same object makes it easier to chain calls during construction, such as transitionSet.addTransitions(new Fade()).addTarget(someId);

addTarget

Added in API level 21
TransitionSet addTarget (Class targetType)

添加此Transition对动画感兴趣的目标视图的Class。 默认情况下,没有targetTypes,并且Transition将侦听场景的sceneRoot下面的每个视图的变化。 设置targetTypes会限制Transition仅侦听这些类并对其执行操作。 不同类别的视图将被忽略。

请注意,任何可以转换为targetType的视图都将包含在内,因此如果targetType为 View.class ,则将包含所有视图。

Parameters
targetType Class: The type to include when running this transition.
Returns
TransitionSet The Transition to which the target class was added. Returning the same object makes it easier to chain calls during construction, such as transitionSet.addTransitions(new Fade()).addTarget(ImageView.class);

addTarget

Added in API level 21
TransitionSet addTarget (String targetName)

添加此Transition对动画感兴趣的目标视图的transitionName。 默认情况下,没有targetNames,Transition将侦听场景的sceneRoot下面的每个视图的变化。 设置targetNames会将转换限制为仅使用这些transitionNames来侦听和操作视图。 具有不同transitionNames的视图或任何transitionName都将被忽略。

请注意,transitionNames在视图层次结构中应该是唯一的。

Parameters
targetName String: The transitionName of a target view, must be non-null.
Returns
TransitionSet The Transition to which the target transitionName is added. Returning the same object makes it easier to chain calls during construction, such as transitionSet.addTransitions(new Fade()).addTarget(someName);

addTransition

Added in API level 19
TransitionSet addTransition (Transition transition)

将子过渡添加到此集。 除了ordering属性之外,相对于添加的其他子转换添加此子转换的顺序决定了转换开始的顺序。

如果此transitionSet上设置了duration ,则子过渡将继承该持续时间。 假定转换最多有一个transitionSet父项。

Parameters
transition Transition: A non-null child transition to be added to this set.
Returns
TransitionSet This transitionSet object.

captureEndValues

Added in API level 19
void captureEndValues (TransitionValues transitionValues)

在结束场景中捕获此转换监视的属性的值。 然后这些值作为endValues结构传递给createAnimator(ViewGroup, TransitionValues, TransitionValues) 实施的主要关注点是过渡期关注的属性以及所有这些属性的价值。 开始和结束值将在createAnimator(android.view.ViewGroup, TransitionValues, TransitionValues)方法后期进行比较,以确定应该运行哪些动画(如果有的话)。

子类必须实现此方法。 该方法只能由过渡系统调用; 它不打算从外部类中调用。

Parameters
transitionValues TransitionValues: The holder for any values that the Transition wishes to store. Values are stored in the values field of this TransitionValues object and are keyed from a String value. For example, to store a view's rotation value, a transition might call transitionValues.values.put("appname:transitionname:rotation", view.getRotation()). The target view will already be stored in the transitionValues structure when this method is called.

captureStartValues

Added in API level 19
void captureStartValues (TransitionValues transitionValues)

捕获此转场监视的属性在开始场景中的值。 然后这些值作为startValues结构在以后的调用中传递给createAnimator(ViewGroup, TransitionValues, TransitionValues) 实施的主要关注点是过渡期关注的属性以及所有这些属性的价值。 开始和结束值将在createAnimator(android.view.ViewGroup, TransitionValues, TransitionValues)方法后期进行比较,以确定应该运行哪些动画(如果有的话)。

子类必须实现此方法。 该方法只能由过渡系统调用; 它不打算从外部类中调用。

Parameters
transitionValues TransitionValues: The holder for any values that the Transition wishes to store. Values are stored in the values field of this TransitionValues object and are keyed from a String value. For example, to store a view's rotation value, a transition might call transitionValues.values.put("appname:transitionname:rotation", view.getRotation()). The target view will already be stored in the transitionValues structure when this method is called.

clone

Added in API level 19
TransitionSet 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
TransitionSet a clone of this instance.

excludeTarget

Added in API level 19
Transition excludeTarget (View target, 
                boolean exclude)

是否将给定目标添加到要从此转换中排除的目标列表。 exclude参数指定是否应将目标添加到排除列表或从排除列表中删除。

排除目标是允许转换在视图层次结构上运行同时跳过不应该成为转换部分的目标视图的一般机制。 例如,您可能希望避免为特定ListView或Spinner的子项设置动画。 视图可以通过它们的id,或它们的实例引用,或者视图的Class(例如, Spinner )来Spinner

Parameters
target View: The target to ignore when running this transition.
exclude boolean: Whether to add the target to or remove the target from the current list of excluded targets.
Returns
Transition This transition object.

excludeTarget

Added in API level 19
Transition excludeTarget (Class type, 
                boolean exclude)

是否将给定类型添加到要从此过渡中排除的类型列表。 exclude参数指定是否应将目标类型添加到排除列表或从排除列表中删除。

排除目标是允许转换在视图层次结构上运行同时跳过不应该成为转换部分的目标视图的一般机制。 例如,您可能希望避免为特定ListView或Spinner的子项设置动画。 视图可以通过它们的id,或者它们的实例引用,或者该视图的Class(例如, Spinner )来Spinner

Parameters
type Class: The type to ignore when running this transition.
exclude boolean: Whether to add the target type to or remove it from the current list of excluded target types.
Returns
Transition This transition object.

excludeTarget

Added in API level 21
Transition excludeTarget (String targetName, 
                boolean exclude)

是否将给定的transitionName添加到目标transitionNames的列表中以从此过渡中排除。 exclude参数指定是否应将目标添加到排除列表或从排除列表中删除。

排除目标是允许转换在视图层次结构上运行同时跳过不应该成为转换部分的目标视图的一般机制。 例如,您可能希望避免为特定ListView或Spinner的子项设置动画。 视图可以通过它们的id,它们的实例引用,它们的transitionName或视图的Class来排除(例如, Spinner )。

Parameters
targetName String: The name of a target to ignore when running this transition.
exclude boolean: Whether to add the target to or remove the target from the current list of excluded targets.
Returns
Transition This transition object.

excludeTarget

Added in API level 19
Transition excludeTarget (int targetId, 
                boolean exclude)

是否将给定的ID添加到目标ID列表中以从此过渡中排除。 参数exclude指定是否应将目标添加到排除列表或从排除列表中删除。

排除目标是允许转换在视图层次结构上运行同时跳过不应该成为转换部分的目标视图的一般机制。 例如,您可能希望避免为特定ListView或Spinner的子项设置动画。 视图可以通过它们的id,或它们的实例引用或该视图的Class(例如, SpinnerSpinner

Parameters
targetId int: The id of a target to ignore when running this transition.
exclude boolean: Whether to add the target to or remove the target from the current list of excluded targets.
Returns
Transition This transition object.

getOrdering

Added in API level 19
int getOrdering ()

返回此TransitionSet的排序。 默认情况下,该值为ORDERING_TOGETHER

Returns
int ORDERING_TOGETHER if child transitions will play at the same time, ORDERING_SEQUENTIAL if they will play in sequence.

也可以看看:

getTransitionAt

Added in API level 21
Transition getTransitionAt (int index)

返回TransitionSet中指定位置的子Transition。

Parameters
index int: The position of the Transition to retrieve.
Returns
Transition

也可以看看:

getTransitionCount

Added in API level 21
int getTransitionCount ()

返回TransitionSet中子变换的数量。

Returns
int The number of child transitions in the TransitionSet.

也可以看看:

removeListener

Added in API level 19
TransitionSet removeListener (Transition.TransitionListener listener)

从侦听此动画的集合中删除侦听器。

Parameters
listener Transition.TransitionListener: the listener to be removed from the current set of listeners for this transition.
Returns
TransitionSet This transition object.

removeTarget

Added in API level 19
TransitionSet removeTarget (int targetId)

从该Transition对动画感兴趣的id列表中移除给定的targetId。

Parameters
targetId int: The id of a target view, must be a positive number.
Returns
TransitionSet The Transition from which the targetId is removed. Returning the same object makes it easier to chain calls during construction, such as transitionSet.addTransitions(new Fade()).removeTargetId(someId);

removeTarget

Added in API level 19
TransitionSet removeTarget (View target)

从该转换对动画感兴趣的目标列表中删除给定的目标。

Parameters
target View: The target view, must be non-null.
Returns
TransitionSet Transition The Transition from which the target is removed. Returning the same object makes it easier to chain calls during construction, such as transitionSet.addTransitions(new Fade()).removeTarget(someView);

removeTarget

Added in API level 21
TransitionSet removeTarget (String target)

从Transition转换对动画感兴趣的transitionNames列表中删除给定的targetName。

Parameters
target String: The transitionName of a target view, must not be null.
Returns
TransitionSet The Transition from which the targetName is removed. Returning the same object makes it easier to chain calls during construction, such as transitionSet.addTransitions(new Fade()).removeTargetName(someName);

removeTarget

Added in API level 21
TransitionSet removeTarget (Class target)

从该转换对动画感兴趣的目标列表中删除给定的目标。

Parameters
target Class: The type of the target view, must be non-null.
Returns
TransitionSet Transition The Transition from which the target is removed. Returning the same object makes it easier to chain calls during construction, such as transitionSet.addTransitions(new Fade()).removeTarget(someType);

removeTransition

Added in API level 19
TransitionSet removeTransition (Transition transition)

从该组中删除指定的子过渡。

Parameters
transition Transition: The transition to be removed.
Returns
TransitionSet This transitionSet object.

setDuration

Added in API level 19
TransitionSet setDuration (long duration)

在TransitionSet上设置非负的持续时间会导致所有子过渡(当前和将来)继承此持续时间。

Parameters
duration long: The length of the animation, in milliseconds.
Returns
TransitionSet This transitionSet object.

setEpicenterCallback

Added in API level 21
void setEpicenterCallback (Transition.EpicenterCallback epicenterCallback)

设置回调以用于查找转场的震中。 空值表示Transition中没有震中,onGetEpicenter()将返回null。 诸如Explode类的Explode使用一个点或Rect来定位行进方向。 这被称为过渡的中心,通常集中在一个触摸的视图。 Transition.EpicenterCallback允许转换在转换期间动态检索震中。

Parameters
epicenterCallback Transition.EpicenterCallback: The callback to use to find the epicenter of the Transition.

setInterpolator

Added in API level 19
TransitionSet setInterpolator (TimeInterpolator interpolator)

设置此转换的插补器。 默认情况下,插补器为空,这意味着由转换创建的Animator将拥有自己的指定插补器。 如果设置了Transition的插补器,则该插补器将覆盖Animator插补器。

Parameters
interpolator TimeInterpolator: The time interpolator used by the transition
Returns
TransitionSet This transition object.

setOrdering

Added in API level 19
TransitionSet setOrdering (int ordering)

设置此套儿童转场的播放顺序。

Parameters
ordering int: ORDERING_TOGETHER to play this set's child transitions together, ORDERING_SEQUENTIAL to play the child transitions in sequence.
Returns
TransitionSet This transitionSet object.

setPathMotion

Added in API level 21
void setPathMotion (PathMotion pathMotion)

设置用于计算二维插值的算法。

诸如ChangeBounds转换通常在开始和结束位置之间的直线路径中移动视图。 希望让这些运动以曲线形式移动的应用程序可以通过扩展PathMotion并实现getPath(float, float, float, float)来改变View在二维中的内插getPath(float, float, float, float)

在用XML描述时,为路径运动使用嵌套的XML标记。 它可以是内置标签arcMotionpatternPathMotion ,也可以是使用pathMotion的定制PathMotion, class由完全描述的类名称归属。 例如:

 <changeBounds>
     <pathMotion class="my.app.transition.MyPathMotion"/>
 </changeBounds>
 
 

要么

 <changeBounds>
   <arcMotion android:minimumHorizontalAngle="15"
     android:minimumVerticalAngle="0" android:maximumAngle="90"/>
 </changeBounds>
 
 

Parameters
pathMotion PathMotion: Algorithm object to use for determining how to interpolate in two dimensions. If null, a straight-path algorithm will be used.

setPropagation

Added in API level 21
void setPropagation (TransitionPropagation propagation)

设置确定动画制作者启动延迟的方法。 当一个转换影响像ExplodeSlide这样的几个视图时,可能需要有一个“波前”效应,这样动画开始延迟取决于视图的位置。 TransitionPropagation指定如何计算启动延迟。

Parameters
propagation TransitionPropagation: The class used to determine the start delay of Animators created by this Transition. A null value indicates that no delay should be used.

setStartDelay

Added in API level 19
TransitionSet setStartDelay (long startDelay)

设置此转换的startDelay。 默认情况下,没有延迟(由负数表示),这意味着由过渡创建的Animator将拥有自己的指定startDelay。 如果设置了延迟时间,则延迟将覆盖Animator延迟。

Parameters
startDelay long: The length of the delay, in milliseconds.
Returns
TransitionSet This transition object.

Hooray!