public class ChangeImageTransform
extends Transition
java.lang.Object | ||
↳ | android.transition.Transition | |
↳ | android.transition.ChangeImageTransform |
这个Transition在场景改变之前和之后捕获一个ImageView的矩阵,并在转换过程中为其生成动画。
与ChangeBounds结合使用时,ChangeImageTransform允许更改大小,形状或 ImageView.ScaleType
ImageViews平滑地动画内容。
Inherited XML attributes |
|
---|---|
From class android.transition.Transition
|
Inherited constants |
---|
From class android.transition.Transition
|
Public constructors |
|
---|---|
ChangeImageTransform() |
|
ChangeImageTransform(Context context, AttributeSet attrs) |
Public methods |
|
---|---|
void |
captureEndValues(TransitionValues transitionValues) 在结束场景中捕获此转换监视的属性的值。 |
void |
captureStartValues(TransitionValues transitionValues) 捕获此转场监视的属性在开始场景中的值。 |
Animator |
createAnimator(ViewGroup sceneRoot, TransitionValues startValues, TransitionValues endValues) 为ImageView移动,更改尺寸和/或更改 |
String[] |
getTransitionProperties() 返回存储在 |
Inherited methods |
|
---|---|
From class android.transition.Transition
|
|
From class java.lang.Object
|
ChangeImageTransform (Context context, AttributeSet attrs)
Parameters | |
---|---|
context |
Context
|
attrs |
AttributeSet
|
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. |
void captureStartValues (TransitionValues transitionValues)
捕获此转场监视的属性在开始场景中的值。 这些值然后在以后调用createAnimator(ViewGroup, 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. |
Animator createAnimator (ViewGroup sceneRoot, TransitionValues startValues, TransitionValues endValues)
为ImageView移动,更改尺寸和/或更改 ImageView.ScaleType
创建Animator。
Parameters | |
---|---|
sceneRoot |
ViewGroup : The root of the transition hierarchy. |
startValues |
TransitionValues : The values for a specific target in the start scene. |
endValues |
TransitionValues : The values for the target in the end scene. |
Returns | |
---|---|
Animator |
An Animator to move an ImageView or null if the View is not an ImageView, the Drawable changed, the View is not VISIBLE, or there was no change. |
String[] getTransitionProperties ()
返回传递到captureStartValues(TransitionValues)
中的TransitionValues
对象中存储的属性名称captureStartValues(TransitionValues)
,此对象用于取消重叠动画。 当在给定场景根上开始任何转场时,将检查当前在同一场景根上运行的所有转场,以查看它们基于其动画的属性是否与新转场中相同属性的最终值一致。 如果最终值不相等,则旧的动画将被取消,因为新的转换将为这些新值开始新的动画。 如果值相等,则允许旧动画继续,并且不会为该转换启动新的动画。
过渡不需要重写此方法。 但是,如果不这样做,则意味着上一段中所述的取消逻辑将跳过该转换,可能会导致人为因素,因为旧转换和同一目标上的新转换并行运行,将视图动画化为可能不同的最终值。
Returns | |
---|---|
String[] |
An array of property names as described in the class documentation for TransitionValues . The default implementation returns null . |