android.support.v14.preference
android.support.v17.leanback
android.support.v17.leanback.app
android.support.v17.leanback.database
android.support.v17.leanback.graphics
android.support.v17.leanback.system
android.support.v17.leanback.widget
android.support.v17.leanback.widget.picker
android.support.v17.preference
android.support.v4
android.support.v4.accessibilityservice
android.support.v4.app
android.support.v4.content
android.support.v4.content.pm
android.support.v4.content.res
android.support.v4.database
android.support.v4.graphics
android.support.v4.graphics.drawable
android.support.v4.hardware.display
android.support.v4.hardware.fingerprint
android.support.v4.media
android.support.v4.media.session
android.support.v4.net
android.support.v4.os
android.support.v4.print
android.support.v4.provider
android.support.v4.text
android.support.v4.util
android.support.v4.view
android.support.v4.view.accessibility
android.support.v4.view.animation
android.support.v4.widget
android.support.v7.app
android.support.v7.appcompat
android.support.v7.cardview
android.support.v7.content.res
android.support.v7.graphics
android.support.v7.graphics.drawable
android.support.v7.gridlayout
android.support.v7.media
android.support.v7.mediarouter
android.support.v7.palette
android.support.v7.preference
android.support.v7.recyclerview
android.support.v7.util
android.support.v7.view
android.support.v7.widget
android.support.v7.widget.helper
android.support.v7.widget.util
android.support.v8.renderscript
android.system
android.telecom
android.telephony
android.telephony.cdma
android.telephony.gsm
android.test
android.test.mock
android.test.suitebuilder
android.test.suitebuilder.annotation
android.text
android.text.format
android.text.method
android.text.style
android.text.util
android.transition
android.util
android.view
android.view.accessibility
android.view.animation
android.view.inputmethod
android.view.textservice
android.webkit
android.widget
com.android.internal.backup
com.android.internal.logging
com.android.internal.os
com.android.internal.statusbar
com.android.internal.widget
com.android.test.runner
dalvik.annotation
dalvik.bytecode
dalvik.system
java.awt.font
java.beans
java.io
java.lang
java.lang.annotation
java.lang.ref
java.lang.reflect
java.math
java.net
java.nio
java.nio.channels
java.nio.channels.spi
java.nio.charset
java.nio.charset.spi
java.security
java.security.acl
java.security.cert
java.security.interfaces
java.security.spec
java.sql
java.text
java.util
java.util.concurrent
java.util.concurrent.atomic
java.util.concurrent.locks
java.util.function
java.util.jar
java.util.logging
java.util.prefs
java.util.regex
java.util.stream
java.util.zip
javax.crypto
javax.crypto.interfaces
javax.crypto.spec
javax.microedition.khronos.egl
javax.microedition.khronos.opengles
javax.net
javax.net.ssl
javax.security.auth
javax.security.auth.callback
javax.security.auth.login
javax.security.auth.x500
javax.security.cert
javax.sql
javax.xml
javax.xml.datatype
javax.xml.namespace
javax.xml.parsers
javax.xml.transform
javax.xml.transform.dom
javax.xml.transform.sax
javax.xml.transform.stream
javax.xml.validation
javax.xml.xpath
junit.framework
junit.runner
org.apache.http.conn
org.apache.http.conn.scheme
org.apache.http.conn.ssl
org.apache.http.params
org.json
org.w3c.dom
org.w3c.dom.ls
org.xml.sax
org.xml.sax.ext
org.xml.sax.helpers
org.xmlpull.v1
org.xmlpull.v1.sax2
Interfaces
Animator.AnimatorListener
Animator.AnimatorPauseListener
LayoutTransition.TransitionListener
TimeAnimator.TimeListener
TimeInterpolator
TypeEvaluator
ValueAnimator.AnimatorUpdateListener
Classes
Animator
AnimatorInflater
AnimatorListenerAdapter
AnimatorSet
AnimatorSet.Builder
ArgbEvaluator
BidirectionalTypeConverter
FloatArrayEvaluator
FloatEvaluator
IntArrayEvaluator
IntEvaluator
Keyframe
LayoutTransition
ObjectAnimator
PointFEvaluator
PropertyValuesHolder
RectEvaluator
StateListAnimator
TimeAnimator
TypeConverter
ValueAnimator
这个
ValueAnimator
子类提供了对目标对象的动画属性的支持。
这个类的构造函数使用参数来定义将被动画的目标对象以及将被动画的属性的名称。
然后在内部确定适当的设置/获取函数,动画将根据需要调用这些函数来动画属性。
动画师可以从代码或资源文件创建,如下所示:
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:valueTo="200"
android:valueType="floatType"
android:propertyName="y"
android:repeatCount="1"
android:repeatMode="reverse"/>
使用资源文件时,可以使用
PropertyValuesHolder
和
Keyframe
来创建更复杂的动画。
使用PropertyValuesHolders允许动画师并行地动画多个属性,如下例所示:
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:repeatCount="1"
android:repeatMode="reverse">
<propertyValuesHolder android:propertyName="x" android:valueTo="400"/>
<propertyValuesHolder android:propertyName="y" android:valueTo="200"/>
</objectAnimator>
使用关键帧允许动画从开始到结束值遵循更复杂的路径。
请注意,您可以为每个关键帧指定显式小数值(从0到1),以确定在整个持续时间内动画何时应达到该值。
或者,您可以关闭分数,关键帧将在总时间内平均分配。
而且,没有值的关键帧将在动画开始时从目标对象派生出它的值,就像动画师只有一个指定的值一样。
另外,可以指定一个可选的插补器。
内插器将应用于内插器设置的关键帧和前一个关键帧之间的间隔。
未提供插补器时,将使用默认的
AccelerateDecelerateInterpolator
。
<propertyValuesHolder android:propertyName="x" >
<keyframe android:fraction="0" android:value="800" />
<keyframe android:fraction=".2"
android:interpolator="@android:anim/accelerate_interpolator"
android:value="1000" />
<keyframe android:fraction="1"
android:interpolator="@android:anim/accelerate_interpolator"
android:value="400" />
</propertyValuesHolder>
<propertyValuesHolder android:propertyName="y" >
<keyframe/>
<keyframe android:fraction=".2"
android:interpolator="@android:anim/accelerate_interpolator"
android:value="300"/>
<keyframe android:interpolator="@android:anim/accelerate_interpolator"
android:value="1000" />
</propertyValuesHolder>
Developer Guides
有关使用
ObjectAnimator
动画
ObjectAnimator
更多信息,请参阅
Property Animation
开发人员指南。
也可以看看:
setPropertyName(String)
Summary
static
ObjectAnimator
ofArgb
(
Object
target,
String
propertyName, int... values)
构造并返回在颜色值之间进行动画处理的ObjectAnimator。
static <T>
ObjectAnimator
ofArgb
(T target,
Property
<T,
Integer
> property, int... values)
构造并返回在颜色值之间进行动画处理的ObjectAnimator。
static
ObjectAnimator
ofFloat
(
Object
target,
String
xPropertyName,
String
yPropertyName,
Path
path)
构造并返回一个ObjectAnimator,
Path
使用两个属性沿着
Path
沿着坐标进行动画处理。
static <T>
ObjectAnimator
ofFloat
(T target,
Property
<T,
Float
> property, float... values)
构造并返回在浮动值之间动画的ObjectAnimator。
static <T>
ObjectAnimator
ofFloat
(T target,
Property
<T,
Float
> xProperty,
Property
<T,
Float
> yProperty,
Path
path)
构造并返回一个ObjectAnimator,
Path
使用两个属性沿着
Path
沿着坐标进行动画处理。
static
ObjectAnimator
ofFloat
(
Object
target,
String
propertyName, float... values)
构造并返回在浮动值之间动画的ObjectAnimator。
static <T>
ObjectAnimator
ofInt
(T target,
Property
<T,
Integer
> xProperty,
Property
<T,
Integer
> yProperty,
Path
path)
构造并返回一个ObjectAnimator,
Path
使用两个属性沿着
Path
沿着坐标进行动画处理。
static <T>
ObjectAnimator
ofInt
(T target,
Property
<T,
Integer
> property, int... values)
构造并返回在int值之间动画的ObjectAnimator。
static
ObjectAnimator
ofInt
(
Object
target,
String
propertyName, int... values)
构造并返回在int值之间动画的ObjectAnimator。
static
ObjectAnimator
ofInt
(
Object
target,
String
xPropertyName,
String
yPropertyName,
Path
path)
构造并返回一个ObjectAnimator,
Path
使用两个属性沿着
Path
沿着坐标进行动画处理。
static
ObjectAnimator
ofMultiFloat
(
Object
target,
String
propertyName, float[][] values)
构造并返回一个ObjectAnimator,该动画通过多参数设置器的浮动值进行动画处理。
static
ObjectAnimator
ofMultiFloat
(
Object
target,
String
propertyName,
Path
path)
构造并返回一个ObjectAnimator,它使用沿着给定的
Path
的多浮点设置器来动画目标。
static <T>
ObjectAnimator
ofMultiFloat
(
Object
target,
String
propertyName,
TypeConverter
<T, float[]> converter,
TypeEvaluator
<T> evaluator, T... values)
构造并返回一个ObjectAnimator,它为多浮点参数设置器的值提供动画。
static
ObjectAnimator
ofMultiInt
(
Object
target,
String
propertyName, int[][] values)
构造并返回一个ObjectAnimator,该ObjectAnimator通过多参数设置器的int值进行动画处理。
static
ObjectAnimator
ofMultiInt
(
Object
target,
String
propertyName,
Path
path)
构造并返回一个ObjectAnimator,该ObjectAnimator使用给定的
Path
的多int设置器来动画目标。
static <T>
ObjectAnimator
ofMultiInt
(
Object
target,
String
propertyName,
TypeConverter
<T, int[]> converter,
TypeEvaluator
<T> evaluator, T... values)
构造并返回一个ObjectAnimator,它为多个int参数设置器的值进行动画处理。
static <T, V>
ObjectAnimator
ofObject
(T target,
Property
<T, V> property,
TypeEvaluator
<V> evaluator, V... values)
构造并返回在Object值之间动画的ObjectAnimator。
static
ObjectAnimator
ofObject
(
Object
target,
String
propertyName,
TypeConverter
<
PointF
, ?> converter,
Path
path)
构造并返回一个沿着
Path
动画化属性的
Path
。
static <T, V>
ObjectAnimator
ofObject
(T target,
Property
<T, V> property,
TypeConverter
<
PointF
, V> converter,
Path
path)
构造并返回一个沿着
Path
动画化属性的
Path
。
static <T, V, P>
ObjectAnimator
ofObject
(T target,
Property
<T, P> property,
TypeConverter
<V, P> converter,
TypeEvaluator
<V> evaluator, V... values)
构造并返回在Object值之间动画的ObjectAnimator。
static
ObjectAnimator
ofObject
(
Object
target,
String
propertyName,
TypeEvaluator
evaluator,
Object...
values)
构造并返回在Object值之间动画的ObjectAnimator。
static
ObjectAnimator
ofPropertyValuesHolder
(
Object
target,
PropertyValuesHolder...
values)
构造并返回在
PropertyValueHolder
对象中指定的值集之间进行动画处理的
PropertyValueHolder
。
setAutoCancel
(boolean cancel)
autoCancel控制是否在启动具有相同目标和属性的任何其他ObjectAnimator时自动取消ObjectAnimator。
ObjectAnimator
setDuration
(long duration)
设置动画的长度。
setFloatValues
(float... values)
设置将在之间动画的浮动值。
setIntValues
(int... values)
设置将在之间进行动画处理的int值。
setObjectValues
(
Object...
values)
为此动画设置动画值。
setProperty
(
Property
property)
设置将被动画的属性。
setPropertyName
(
String
propertyName)
设置将要动画的属性的名称。
setTarget
(
Object
target)
设置其属性将由此动画制作动画的目标对象。
setupEndValues
()
此方法告诉对象使用适当的信息来提取动画的结尾值。
setupStartValues
()
该方法告诉对象使用适当的信息来提取动画的起始值。
start
()
开始这个动画。
String
toString
()
返回对象的字符串表示形式。
addUpdateListener
(
ValueAnimator.AnimatorUpdateListener
listener)
将侦听器添加到在动画生命周期中发送更新事件的侦听器组。
cancel
()
取消动画。
ValueAnimator
clone
()
创建并返回此对象的副本。
end
()
结束动画。
float
getAnimatedFraction
()
返回当前动画分数,它是动画上最近帧更新中使用的已用/插值分数。
Object
getAnimatedValue
()
当只有一个属性被动画时,由此
ValueAnimator
计算的最新值。
Object
getAnimatedValue
(
String
propertyName)
由
ValueAnimator
计算的最近值为
propertyName
。
getCurrentPlayTime
()
及时获取动画的当前位置,等于当前时间减去动画开始的时间。
getDuration
()
获取动画的长度。
static long
getFrameDelay
()
动画每帧之间的时间量(以毫秒为单位)。
TimeInterpolator
getInterpolator
()
返回此ValueAnimator使用的定时插补器。
getRepeatCount
()
定义动画应该重复的次数。
getRepeatMode
()
定义此动画在到达结尾时应该执行的操作。
getStartDelay
()
调用
start()
后延迟启动动画的时间量(以毫秒为单位)。
getTotalDuration
()
获取动画的总持续时间,计算动画序列,启动延迟和重复。
PropertyValuesHolder[]
getValues
()
返回此ValueAnimator动画之间的值。
boolean
isRunning
()
返回此Animator当前是否正在运行(已经启动并且已经超过了任何初始启动延迟期并且尚未结束)。
boolean
isStarted
()
返回此Animator是否已启动且尚未结束。
static
ValueAnimator
ofArgb
(int... values)
构造并返回一个在颜色值之间进行动画处理的ValueAnimator。
static
ValueAnimator
ofFloat
(float... values)
构造并返回一个在浮动值之间动画的ValueAnimator。
static
ValueAnimator
ofInt
(int... values)
构造并返回在int值之间动画的ValueAnimator。
static
ValueAnimator
ofObject
(
TypeEvaluator
evaluator,
Object...
values)
构造并返回在对象值之间动画的ValueAnimator。
static
ValueAnimator
ofPropertyValuesHolder
(
PropertyValuesHolder...
values)
构造并返回一个在PropertyValuesHolder对象中指定的值之间进行动画处理的ValueAnimator。
pause
()
暂停正在运行的动画。
removeAllUpdateListeners
()
删除监听此动画帧更新的所有监听器。
removeUpdateListener
(
ValueAnimator.AnimatorUpdateListener
listener)
从侦听此动画帧更新的设备中删除侦听器。
resume
()
恢复暂停的动画,导致动画制作者在暂停时停止播放。
reverse
()
反向播放ValueAnimator。
setCurrentFraction
(float fraction)
将动画的位置设置为指定的分数。
setCurrentPlayTime
(long playTime)
将动画的位置设置为指定的时间点。
ValueAnimator
setDuration
(long duration)
设置动画的长度。
setEvaluator
(
TypeEvaluator
value)
计算此动画的动画值时使用的类型评估程序。
setFloatValues
(float... values)
设置将在之间动画的浮动值。
static void
setFrameDelay
(long frameDelay)
动画每帧之间的时间量(以毫秒为单位)。
setIntValues
(int... values)
设置将在之间进行动画处理的int值。
setInterpolator
(
TimeInterpolator
value)
用于计算此动画的已用部分的时间插值器。
setObjectValues
(
Object...
values)
为此动画设置动画值。
setRepeatCount
(int value)
设置动画应重复多少次。
setRepeatMode
(int value)
定义此动画在到达结尾时应该执行的操作。
setStartDelay
(long startDelay)
调用
start()
后延迟启动动画的时间量(以毫秒为单位)。
setValues
(
PropertyValuesHolder...
values)
设置每个属性的值,之间进行动画处理。
start
()
开始这个动画。
String
toString
()
返回对象的字符串表示形式。
addListener
(
Animator.AnimatorListener
listener)
将侦听器添加到通过动画生命周期发送事件的侦听器集,例如start,repeat和end。
addPauseListener
(
Animator.AnimatorPauseListener
listener)
向此动画制作工具添加暂停侦听器。
cancel
()
取消动画。
Animator
clone
()
创建并返回此对象的副本。
end
()
结束动画。
abstract long
getDuration
()
获取动画的持续时间。
TimeInterpolator
getInterpolator
()
返回此动画使用的定时插补器。
ArrayList
<
Animator.AnimatorListener
>
getListeners
()
获取一套
Animator.AnimatorListener
对象当前侦听此事件上
Animator
对象。
abstract long
getStartDelay
()
调用
start()
后延迟处理动画的时间量(以毫秒为单位)。
getTotalDuration
()
获取动画的总持续时间,计算动画序列,启动延迟和重复。
boolean
isPaused
()
返回此动画制作者当前是否处于暂停状态。
abstract boolean
isRunning
()
返回此Animator当前是否正在运行(已经启动并且已经超过了任何初始启动延迟期并且尚未结束)。
boolean
isStarted
()
返回此Animator是否已启动且尚未结束。
pause
()
暂停正在运行的动画。
removeAllListeners
()
从此对象中移除所有
listeners
和
pauseListeners
。
removeListener
(
Animator.AnimatorListener
listener)
从侦听此动画的集合中删除侦听器。
removePauseListener
(
Animator.AnimatorPauseListener
listener)
从侦听此动画的集合中删除暂停侦听器。
resume
()
恢复暂停的动画,导致动画制作者在暂停时停止播放。
abstract
Animator
setDuration
(long duration)
设置动画的持续时间。
abstract void
setInterpolator
(
TimeInterpolator
value)
时间插值器用于计算动画的已用部分。
abstract void
setStartDelay
(long startDelay)
调用
start()
之后延迟处理动画的时间量(以毫秒为单位)。
setTarget
(
Object
target)
设置其属性将由此动画制作动画的目标对象。
setupEndValues
()
此方法告诉对象使用适当的信息来提取动画的结尾值。
setupStartValues
()
该方法告诉对象使用适当的信息来提取动画的起始值。
start
()
开始这个动画。
final void
wait
(long millis, int nanos)
导致当前线程等待,直到另一个线程为此对象调用
notify()
方法或
notifyAll()
方法,或者某个其他线程中断当前线程,或者经过了一定的实时时间。
final void
wait
(long millis)
导致当前线程等待,直到另一个线程调用此对象的
notify()
方法或
notifyAll()
方法或经过了指定的时间量。
final void
wait
()
使当前线程等待,直到另一个线程调用此对象的
notify()
方法或
notifyAll()
方法。
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
类
Object
并不实现接口
Cloneable
,所以在类
Object
的对象上调用
clone
方法将导致在运行时抛出异常。
Returns
ObjectAnimator
a clone of this instance.
String
getPropertyName ()
获取将被动画的属性的名称。
这个名字将被用来派生一个setter函数来调用设置动画值。
例如,属性名称
foo
将导致调用目标对象上的函数
setFoo()
。
如果
valueFrom
或
valueTo
为空,那么getter函数也将被派生并被调用。
如果此动画制作者使用
Property
对象而不是属性的字符串名称创建,则此方法将返回该Property对象的
name
。
如果此动画设计器是使用一个或多个
PropertyValuesHolder
对象创建的,则此方法将返回该对象的
name
(如果只有一个)或所有名称(如果有多个)的逗号分隔列表。
target
Object
: The object whose property is to be animated. This object should have a public method on it called
setName()
, where
name
is the value of the
propertyName
parameter.
propertyName
String
: The name of the property being animated.
values
int
: A set of values that the animation will animate between over time.
target
Object
: The object whose properties are to be animated. This object should have public methods on it called
setNameX()
and
setNameY
, where
nameX
and
nameY
are the value of the
xPropertyName
and
yPropertyName
parameters, respectively.
xPropertyName
String
: The name of the property for the x coordinate being animated.
yPropertyName
String
: The name of the property for the y coordinate being animated.
Path
: The
Path
to animate values along.
ObjectAnimator
ofFloat (T target,
Property
<T,
Float
> xProperty,
Property
<T,
Float
> yProperty,
Path
path)
构造并返回一个ObjectAnimator,
Path
使用两个属性沿着
Path
沿着坐标进行动画处理。
Path
动画在两个维度上移动,将坐标
(x, y)
动画在一起以跟随该线条。
在此变体中,坐标是设置为分开属性的浮点数,
xProperty
和
yProperty
。
Parameters
target
T
: The object whose properties are to be animated.
xProperty
Property
: The property for the x coordinate being animated.
yProperty
Property
: The property for the y coordinate being animated.
Path
: The
Path
to animate values along.
target
Object
: The object whose property is to be animated. This object should have a public method on it called
setName()
, where
name
is the value of the
propertyName
parameter.
propertyName
String
: The name of the property being animated.
values
float
: A set of values that the animation will animate between over time.
ObjectAnimator
ofInt (T target,
Property
<T,
Integer
> xProperty,
Property
<T,
Integer
> yProperty,
Path
path)
构造并返回一个ObjectAnimator,
Path
使用两个属性沿着
Path
沿着坐标进行动画处理。
Path
动画在两个维度上移动,将坐标
(x, y)
动画在一起以遵循该线。
在此变体中,坐标是设置为分开属性的整数,
xProperty
和
yProperty
。
Parameters
target
T
: The object whose properties are to be animated.
xProperty
Property
: The property for the x coordinate being animated.
yProperty
Property
: The property for the y coordinate being animated.
Path
: The
Path
to animate values along.
target
Object
: The object whose property is to be animated. This object should have a public method on it called
setName()
, where
name
is the value of the
propertyName
parameter.
propertyName
String
: The name of the property being animated.
values
int
: A set of values that the animation will animate between over time.
target
Object
: The object whose properties are to be animated. This object should have public methods on it called
setNameX()
and
setNameY
, where
nameX
and
nameY
are the value of
xPropertyName
and
yPropertyName
parameters, respectively.
xPropertyName
String
: The name of the property for the x coordinate being animated.
yPropertyName
String
: The name of the property for the y coordinate being animated.
Path
: The
Path
to animate values along.
target
Object
: The object whose property is to be animated. This object may have a public method on it called
setName()
, where
name
is the value of the
propertyName
parameter.
propertyName
may also be the case-sensitive complete name of the public setter method.
propertyName
String
: The name of the property being animated or the name of the setter method.
values
float
: A set of values that the animation will animate between over time.
target
Object
: The object whose property is to be animated. This object may have a public method on it called
setName()
, where
name
is the value of the
propertyName
parameter.
propertyName
may also be the case-sensitive complete name of the public setter method.
propertyName
String
: The name of the property being animated or the name of the setter method.
Path
: The
Path
to animate values along.
ObjectAnimator
ofMultiFloat (
Object
target,
String
propertyName,
TypeConverter
<T, float[]> converter,
TypeEvaluator
<T> evaluator,
T... values)
构造并返回一个ObjectAnimator,它为多浮点参数设置器的值提供动画。
只支持只接受浮点参数的公共方法。
至少必须提供两个值,一个开始和结束。
超过两个值意味着一个起始值,沿途动画的值和一个结束值(这些值将在动画的持续时间内均匀分布)。
target
Object
: The object whose property is to be animated. This object may have a public method on it called
setName()
, where
name
is the value of the
propertyName
parameter.
propertyName
may also be the case-sensitive complete name of the public setter method.
propertyName
String
: The name of the property being animated or the name of the setter method.
converter
TypeConverter
: Converts T objects into float parameters for the multi-value setter.
evaluator
TypeEvaluator
: A TypeEvaluator that will be called on each animation frame to provide the necessary interpolation between the Object values to derive the animated value.
values
T
: A set of values that the animation will animate between over time.
target
Object
: The object whose property is to be animated. This object may have a public method on it called
setName()
, where
name
is the value of the
propertyName
parameter.
propertyName
may also be the case-sensitive complete name of the public setter method.
propertyName
String
: The name of the property being animated or the name of the setter method.
values
int
: A set of values that the animation will animate between over time.
target
Object
: The object whose property is to be animated. This object may have a public method on it called
setName()
, where
name
is the value of the
propertyName
parameter.
propertyName
may also be the case-sensitive complete name of the public setter method.
propertyName
String
: The name of the property being animated or the name of the setter method.
Path
: The
Path
to animate values along.
ObjectAnimator
ofMultiInt (
Object
target,
String
propertyName,
TypeConverter
<T, int[]> converter,
TypeEvaluator
<T> evaluator,
T... values)
构造并返回一个ObjectAnimator,它为多个int参数设置器的值进行动画处理。
只支持只接受int参数的公共方法。
至少必须提供两个值,一个开始和结束。
超过两个值意味着一个起始值,沿途动画的值和一个结束值(这些值将在动画的持续时间内均匀分布)。
target
Object
: The object whose property is to be animated. This object may have a public method on it called
setName()
, where
name
is the value of the
propertyName
parameter.
propertyName
may also be the case-sensitive complete name of the public setter method.
propertyName
String
: The name of the property being animated or the name of the setter method.
converter
TypeConverter
: Converts T objects into int parameters for the multi-value setter.
evaluator
TypeEvaluator
: A TypeEvaluator that will be called on each animation frame to provide the necessary interpolation between the Object values to derive the animated value.
values
T
: A set of values that the animation will animate between over time.
TypeEvaluator
<V> evaluator,
V... values)
构造并返回在Object值之间动画的ObjectAnimator。
一个值意味着该值是被动画的值,在这种情况下,首次调用
start()
时,
start()
被动画的属性和目标对象
start()
。
两个值意味着开始和结束值。
超过两个值意味着一个起始值,沿途动画的值和一个结束值(这些值将在动画的持续时间内均匀分布)。
注意:
这些值存储为对原始对象的引用,这意味着调用此方法后对这些对象的更改将影响动画器上的值。
如果在调用此方法后对象将在外部发生变化,则调用者应该传递这些对象的副本。
Parameters
target
T
: The object whose property is to be animated.
property
Property
: The property being animated.
evaluator
TypeEvaluator
: A TypeEvaluator that will be called on each animation frame to provide the necessary interpolation between the Object values to derive the animated value.
values
V
: A set of values that the animation will animate between over time.
ObjectAnimator
ofObject (
Object
target,
String
propertyName,
TypeConverter
<
PointF
, ?> converter,
Path
path)
构造并返回一个沿着
Path
动画属性的
Path
。
一个
Path
动画在两个维度上移动,将坐标
(x, y)
动画在一起以遵循该行。
此变体以
PointF
的坐标为动画,以跟随
Path
。
如果
Property
关联
propertyName
使用比其它类型
PointF
,
converter
可以用来从改变
PointF
与相关联的类型
Property
。
Parameters
target
Object
: The object whose property is to be animated. This object should have a public method on it called
setName()
, where
name
is the value of the
propertyName
parameter.
propertyName
String
: The name of the property being animated.
converter
TypeConverter
: Converts a PointF to the type associated with the setter. May be null if conversion is unnecessary.
Path
: The
Path
to animate values along.
ObjectAnimator
ofObject (T target,
Property
<T, V> property,
TypeConverter
<
PointF
, V> converter,
Path
path)
构造并返回一个沿着
Path
动画属性的
Path
。
Path
动画在两个维度上移动,将坐标
(x, y)
动画
(x, y)
一起以遵循该线。
此变体以
PointF
的坐标为动画,以跟随
Path
。
如果
property
使用比其它类型
PointF
,
converter
可以用来从改变
PointF
与相关联的类型
Property
。
PointF传递给
converter
或
property
,如果
converter
是
null
,则在每个动画帧上重用,并且不应由setter或TypeConverter存储。
converter
TypeConverter
: Converts a PointF to the type associated with the setter. May be null if conversion is unnecessary.
Path
: The
Path
to animate values along.
TypeEvaluator
<V> evaluator,
V... values)
构造并返回在Object值之间动画的ObjectAnimator。
单个值意味着该值是被动画的值,在这种情况下,首次调用
start()
时,
start()
正在动画的属性和目标对象
start()
。
两个值意味着开始和结束值。
超过两个值意味着一个起始值,沿途动画的值和一个结束值(这些值将在动画的持续时间内均匀分布)。
此变体提供一个
TypeConverter
以将动画值转换为属性的类型。
如果仅提供一个值,则
TypeConverter
必须是
BidirectionalTypeConverter
才能检索当前值。
注意:
这些值存储为对原始对象的引用,这意味着调用此方法后对这些对象的更改将影响动画器上的值。
如果在调用此方法后对象将在外部发生变化,则调用者应该传递这些对象的副本。
Parameters
target
T
: The object whose property is to be animated.
property
Property
: The property being animated.
converter
TypeConverter
: Converts the animated object to the Property type.
evaluator
TypeEvaluator
: A TypeEvaluator that will be called on each animation frame to provide the necessary interpolation between the Object values to derive the animated value.
values
V
: A set of values that the animation will animate between over time.
TypeEvaluator
evaluator,
Object...
values)
构造并返回在Object值之间动画的ObjectAnimator。
一个值意味着该值是被动画的值,在这种情况下,首次调用
start()
时,
start()
被动画的属性和目标对象
start()
。
两个值意味着开始和结束值。
超过两个值意味着一个起始值,沿途动画的值和一个结束值(这些值将在动画的持续时间内均匀分布)。
注意:
这些值存储为对原始对象的引用,这意味着调用此方法后对这些对象的更改将影响动画器上的值。
如果在调用此方法后对象将在外部发生变化,则调用者应该传递这些对象的副本。
Parameters
target
Object
: The object whose property is to be animated. This object should have a public method on it called
setName()
, where
name
is the value of the
propertyName
parameter.
propertyName
String
: The name of the property being animated.
evaluator
TypeEvaluator
: A TypeEvaluator that will be called on each animation frame to provide the necessary interpolation between the Object values to derive the animated value.
values
Object
: A set of values that the animation will animate between over time.
target
Object
: The object whose property is to be animated. Depending on how the PropertyValuesObjects were constructed, the target object should either have the
Property
objects used to construct the PropertyValuesHolder objects or (if the PropertyValuesHOlder objects were created with property names) the target object should have public methods on it called
setName()
, where
name
is the name of the property passed in as the
propertyName
parameter for each of the PropertyValuesHolder objects.
values
PropertyValuesHolder
: A set of PropertyValuesHolder objects whose values will be animated between over time.
void setFloatValues (float... values)
设置将在之间动画的浮动值。
一个单一的价值意味着那个价值是被动画的价值。
但是,这在ValueAnimator对象中通常不会有用,因为对象无法确定动画的起始值(与ObjectAnimator不同,后者可以从目标对象和属性进行动画获取该值)。
因此,通常应该有两个或更多的值。
如果已经通过多个PropertyValuesHolder对象为此ValueAnimator定义了多组值,则此方法将为这些对象中的第一个设置值。
void setIntValues (int... values)
设置将在之间进行动画处理的int值。
一个单一的价值意味着那个价值是被动画的价值。
但是,这在ValueAnimator对象中通常不会有用,因为对象无法确定动画的起始值(与ObjectAnimator不同,后者可以从目标对象和属性进行动画获取该值)。
因此,通常应该有两个或更多的值。
如果已经通过多个PropertyValuesHolder对象为此ValueAnimator定义了多组值,则此方法将为这些对象中的第一个设置值。
void setObjectValues (
Object...
values)
为此动画设置动画值。
一个单一的价值意味着那个价值是被动画的价值。
但是,这在ValueAnimator对象中通常不会有用,因为对象无法确定动画的起始值(与ObjectAnimator不同,后者可以从目标对象和属性进行动画获取该值)。
因此,通常应该有两个或更多的值。
注意:
Object值存储为对原始对象的引用,这意味着调用此方法后对这些对象的更改将影响动画器上的值。
如果在调用此方法后对象将在外部发生变化,则调用者应该传递这些对象的副本。
如果已经通过多个PropertyValuesHolder对象为此ValueAnimator定义了多组值,则此方法将为这些对象中的第一个设置值。
在ValueAnimator上应该有一个TypeEvaluator,它知道如何在这些值对象之间进行插值。
ValueAnimator只知道如何在其他setValues()方法中指定的基本类型之间进行插值。
void setPropertyName (
String
propertyName)
设置将要动画的属性的名称。
这个名字被用来派生一个setter函数来调用设置动画值。
例如,属性名称
foo
将导致调用目标对象上的函数
setFoo()
。
如果
valueFrom
或
valueTo
为空,那么getter函数也将被派生并调用。
为了获得调用由动画属性名称确定的setter函数的最佳性能,请使用
float
或
int
键入的值,并使这些属性的setter函数具有
void
返回值。
这将导致代码为这些受限制的情况采取优化路径。
其他属性类型和返回类型将起作用,但由于正常的反射机制,在处理请求时会有更多开销。
请注意,从此属性名派生的setter函数必须采用与
valueFrom
和
valueTo
属性相同的参数类型,否则对setter函数的调用将失败。
如果此ObjectAnimator已设置为使用多个PropertyValuesHolder对象一起动画多个属性,则设置propertyName只需在第一个PropertyValuesHolder对象中设置propertyName。
void setTarget (
Object
target)
设置其属性将由此动画制作动画的目标对象。
并非所有子类都对目标对象进行操作(例如,
ValueAnimator
,但此方法位于超类上,以方便与处理目标的子类进行通用处理。
注意:
目标被内部存储为弱引用,以避免动画师直接引用旧目标而导致资源泄漏。
因此,你应该确保动画师的目标总是在其他地方有一个很好的参考。
Parameters
target
Object
: The object being animated
void start ()
开始这个动画。
如果动画具有非零的startDelay,则动画将在延迟消逝后开始运行。
非延迟动画将立即设置其初始值,然后为该动画
onAnimationStart(Animator)
的任何听众调用
onAnimationStart(Animator)
。
通过调用此方法开始的动画将在调用此方法的线程上运行。
这个线程应该有一个Looper(如果不是这种情况,将会抛出一个运行时异常)。
此外,如果动画会为视图层次结构中的对象的属性制作动画,则调用线程应该是该视图层次结构的UI线程。
String
toString ()
返回对象的字符串表示形式。
通常,
toString
方法将返回一个字符串,用于“文本地表示”此对象。
结果应该是一个简洁但内容丰富的表述,对于一个人来说很容易阅读。
建议所有子类重写此方法。
类
Object
的
toString
方法返回一个字符串,其中包含对象为实例的类的名称,符号字符“
@
”以及对象的哈希代码的无符号十六进制表示形式。
换句话说,这个方法返回一个字符串,其值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())