public class ValueAnimator
extends Animator
java.lang.Object | ||
↳ | android.animation.Animator | |
↳ | android.animation.ValueAnimator |
Known Direct Subclasses |
这个类提供了一个简单的计时引擎,用于运行计算动画值并将它们设置到目标对象上的动画。
所有动画都有一个定时脉冲。 它在自定义处理程序中运行,以确保在UI线程上发生属性更改。
默认情况下,ValueAnimator使用非线性时间插值,通过AccelerateDecelerateInterpolator
类加速进入动画并减速。 通过调用setInterpolator(TimeInterpolator)
可以更改此行为。
动画师可以从代码或资源文件中创建。 这是一个ValueAnimator资源文件的例子:
<animator xmlns:android="http://schemas.android.com/apk/res/android" android:duration="1000" android:valueFrom="1" android:valueTo="0" android:valueType="floatType" android:repeatCount="1" android:repeatMode="reverse"/>
也可以使用PropertyValuesHolder
和Keyframe
资源标签的组合来创建多步骤动画。 请注意,您可以为每个关键帧指定显式小数值(从0到1),以确定在整个持续时间内动画何时应达到该值。 或者,您可以关闭分数,关键帧将在总时长内平均分配:
<animator xmlns:android="http://schemas.android.com/apk/res/android" android:duration="1000" android:repeatCount="1" android:repeatMode="reverse"> <propertyValuesHolder> <keyframe android:fraction="0" android:value="1"/> <keyframe android:fraction=".2" android:value=".4"/> <keyframe android:fraction="1" android:value="0"/> </propertyValuesHolder> </animator>
有关使用 ValueAnimator
动画 ValueAnimator
更多信息,请阅读 Property Animation开发人员指南。
Nested classes |
|
---|---|
interface |
ValueAnimator.AnimatorUpdateListener 此接口的实现者可以将其自身作为更新侦听器添加到 |
Constants |
|
---|---|
int |
INFINITE 此值与 |
int |
RESTART 当动画结束并且 |
int |
REVERSE 当动画结束并且 |
Inherited constants |
---|
From class android.animation.Animator
|
Public constructors |
|
---|---|
ValueAnimator() 创建一个新的ValueAnimator对象。 |
Public methods |
|
---|---|
void |
addUpdateListener(ValueAnimator.AnimatorUpdateListener listener) 将侦听器添加到在动画生命周期中发送更新事件的侦听器组。 |
void |
cancel() 取消动画。 |
ValueAnimator |
clone() 创建并返回此对象的副本。 |
void |
end() 结束动画。 |
float |
getAnimatedFraction() 返回当前动画分数,它是动画上最近帧更新中使用的已用/插值分数。 |
Object |
getAnimatedValue() 当只有一个属性正在动画时,由此 |
Object |
getAnimatedValue(String propertyName) 由 |
long |
getCurrentPlayTime() 及时获取动画的当前位置,等于当前时间减去动画开始的时间。 |
long |
getDuration() 获取动画的长度。 |
static long |
getFrameDelay() 动画每帧之间的时间量(以毫秒为单位)。 |
TimeInterpolator |
getInterpolator() 返回此ValueAnimator使用的定时插补器。 |
int |
getRepeatCount() 定义动画应该重复的次数。 |
int |
getRepeatMode() 定义此动画在到达结尾时应该执行的操作。 |
long |
getStartDelay() 调用 |
long |
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。 |
void |
pause() 暂停正在运行的动画。 |
void |
removeAllUpdateListeners() 删除监听此动画帧更新的所有监听器。 |
void |
removeUpdateListener(ValueAnimator.AnimatorUpdateListener listener) 从侦听此动画帧更新的设备中删除侦听器。 |
void |
resume() 恢复暂停的动画,导致动画制作者在暂停时停止播放。 |
void |
reverse() 反向播放ValueAnimator。 |
void |
setCurrentFraction(float fraction) 将动画的位置设置为指定的分数。 |
void |
setCurrentPlayTime(long playTime) 将动画的位置设置为指定的时间点。 |
ValueAnimator |
setDuration(long duration) 设置动画的长度。 |
void |
setEvaluator(TypeEvaluator value) 计算此动画的动画值时使用的类型评估程序。 |
void |
setFloatValues(float... values) 设置将在之间动画的浮动值。 |
static void |
setFrameDelay(long frameDelay) 动画每帧之间的时间量(以毫秒为单位)。 |
void |
setIntValues(int... values) 设置将在之间进行动画处理的int值。 |
void |
setInterpolator(TimeInterpolator value) 用于计算此动画的已用部分的时间插值器。 |
void |
setObjectValues(Object... values) 为此动画设置动画值。 |
void |
setRepeatCount(int value) 设置动画应重复多少次。 |
void |
setRepeatMode(int value) 定义此动画在到达结尾时应该执行的操作。 |
void |
setStartDelay(long startDelay) 调用 |
void |
setValues(PropertyValuesHolder... values) 设置每个属性的值,之间进行动画处理。 |
void |
start() 开始这个动画。 |
String |
toString() 返回对象的字符串表示形式。 |
Inherited methods |
|
---|---|
From class android.animation.Animator
|
|
From class java.lang.Object
|
int INFINITE
此值与 setRepeatCount(int)
属性一起使用,以无限期地重复动画。
常量值:-1(0xffffffff)
int RESTART
当动画到达结尾并且 repeatCount
为无限或正值时,动画将从头开始重新开始。
常数值:1(0x00000001)
int REVERSE
当动画到达结尾, repeatCount
为无限或正值时,动画在每次迭代中反转方向。
常量值:2(0x00000002)
ValueAnimator ()
创建一个新的ValueAnimator对象。 这个默认的构造函数主要用于内部; 采用参数的工厂方法通常更有用。
void addUpdateListener (ValueAnimator.AnimatorUpdateListener listener)
将侦听器添加到在动画生命周期中发送更新事件的侦听器组。 在计算出动画的值后,将为动画的每个帧在所有侦听器上调用此方法。
Parameters | |
---|---|
listener |
ValueAnimator.AnimatorUpdateListener : the listener to be added to the current set of listeners for this animation. |
void cancel ()
取消动画。 与end()
不同, cancel()
导致动画在其轨道上停止,向其听众发送onAnimationCancel(Animator)
,然后发送onAnimationEnd(Animator)
消息。
必须在运行动画的线程上调用此方法。
ValueAnimator clone ()
创建并返回此对象的副本。 “复制”的确切含义可能取决于对象的类别。 一般意图是,对于任何对象x
,表达式:
will be true, and that the expression:x.clone() != x
will bex.clone().getClass() == x.getClass()
true
, but these are not absolute requirements. While it is typically the case that:
will bex.clone().equals(x)
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 | |
---|---|
ValueAnimator |
a clone of this instance. |
void end ()
结束动画。 这会导致动画分配正在动画的属性的最终值,然后在其侦听器上调用onAnimationEnd(Animator)
方法。
必须在运行动画的线程上调用此方法。
float getAnimatedFraction ()
返回当前动画分数,它是动画上最近帧更新中使用的已用/插值分数。
Returns | |
---|---|
float |
Elapsed/interpolated fraction of the animation. |
Object getAnimatedValue ()
当只有一个属性为动画时,此ValueAnimator
计算出的最新值。 这个值只在动画运行时才有意义。 该只读属性的主要目的是检索来自所述值ValueAnimator
到在呼叫期间onAnimationUpdate(ValueAnimator)
,这是每个动画帧期间调用,则该值被计算之后立即。
Returns | |
---|---|
Object |
animatedValue The value most recently calculated by this ValueAnimator for the single property being animated. If there are several properties being animated (specified by several PropertyValuesHolder objects in the constructor), this function returns the animated value for the first of those objects. |
Object getAnimatedValue (String propertyName)
由ValueAnimator
为propertyName
计算的最近值。 该只读属性的主要目的是检索来自所述值ValueAnimator
到在呼叫期间onAnimationUpdate(ValueAnimator)
,这是每个动画帧期间调用,则该值被计算之后立即。
Parameters | |
---|---|
propertyName |
String
|
Returns | |
---|---|
Object |
animatedValue The value most recently calculated for the named property by this ValueAnimator . |
long getCurrentPlayTime ()
及时获取动画的当前位置,等于当前时间减去动画开始的时间。 尚未开始的动画将返回零值,除非动画的播放时间通过setCurrentPlayTime(long)
或setCurrentFraction(float)
设置,在这种情况下,它将返回设置的时间。
Returns | |
---|---|
long |
The current position in time of the animation. |
long getDuration ()
获取动画的长度。 默认持续时间是300毫秒。
Returns | |
---|---|
long |
The length of the animation, in milliseconds. |
long getFrameDelay ()
动画每帧之间的时间量(以毫秒为单位)。 这是动画尝试遵守的请求时间,但帧之间的实际延迟可能不同,具体取决于系统负载和功能。 这是一个静态函数,因为相同的延迟将应用于所有动画,因为它们都是从单个定时循环中运行的。 当动画系统使用外部定时源(例如显示刷新率(vsync))来管理动画时,帧延迟可能会被忽略。 请注意,应该从调用start()
的相同线程调用此方法,以检查该动画的帧延迟。 如果调用线程没有Looper,则会引发运行时异常。
Returns | |
---|---|
long |
the requested time between frames, in milliseconds |
TimeInterpolator getInterpolator ()
返回此ValueAnimator使用的定时插补器。
Returns | |
---|---|
TimeInterpolator |
The timing interpolator for this ValueAnimator. |
int getRepeatCount ()
定义动画应该重复的次数。 默认值是0。
Returns | |
---|---|
int |
the number of times the animation should repeat, or INFINITE |
int getRepeatMode ()
定义此动画在到达结尾时应该执行的操作。
Returns | |
---|---|
int |
either one of REVERSE or RESTART |
long getStartDelay ()
调用 start()
后延迟启动动画的时间量(以毫秒为单位)。
Returns | |
---|---|
long |
the number of milliseconds to delay running the animation |
long getTotalDuration ()
获取动画的总持续时间,计算动画序列,启动延迟和重复。 如果持续时间是无限的,则返回DURATION_INFINITE
。
Returns | |
---|---|
long |
Total time an animation takes to finish, starting from the time start() is called. DURATION_INFINITE will be returned if the animation or any child animation repeats infinite times. |
PropertyValuesHolder[] getValues ()
返回此ValueAnimator动画之间的值。 这些值存储在PropertyValuesHolder对象中,即使ValueAnimator是使用值对象的简单列表创建的。
Returns | |
---|---|
PropertyValuesHolder[] |
PropertyValuesHolder[] An array of PropertyValuesHolder objects which hold the values, per property, that define the animation. |
boolean isRunning ()
返回此Animator当前是否正在运行(已经启动并且已经超过了任何初始启动延迟期并且尚未结束)。
Returns | |
---|---|
boolean |
Whether the Animator is running. |
boolean isStarted ()
返回此Animator是否已启动且尚未结束。 对于可重复使用的动画师(大多数动画师除了由createCircularReveal()
生成的一次动画师)外,此状态是isRunning()
的超集,因为具有非零值startDelay
的动画师将在延迟阶段返回真isStarted()
,而isRunning()
将返回只有在延迟阶段完成后才为真。 不可重用的动画制作者在启动后将始终返回true,因为它们无法返回到未启动状态。
Returns | |
---|---|
boolean |
Whether the Animator has been started and not yet ended. |
ValueAnimator ofArgb (int... values)
构造并返回一个在颜色值之间进行动画处理的ValueAnimator。 一个单一的价值意味着那个价值是被动画的价值。 但是,这在ValueAnimator对象中通常不会有用,因为对象无法确定动画的起始值(与ObjectAnimator不同,后者可以从目标对象和属性进行动画获取该值)。 因此,通常应该有两个或更多的值。
Parameters | |
---|---|
values |
int : A set of values that the animation will animate between over time. |
Returns | |
---|---|
ValueAnimator |
A ValueAnimator object that is set up to animate between the given values. |
ValueAnimator ofFloat (float... values)
构造并返回一个在浮动值之间动画的ValueAnimator。 一个单一的价值意味着那个价值是被动画的价值。 但是,这在ValueAnimator对象中通常不会有用,因为对象无法确定动画的起始值(与ObjectAnimator不同,后者可以从目标对象和属性进行动画获取该值)。 因此,通常应该有两个或更多的值。
Parameters | |
---|---|
values |
float : A set of values that the animation will animate between over time. |
Returns | |
---|---|
ValueAnimator |
A ValueAnimator object that is set up to animate between the given values. |
ValueAnimator ofInt (int... values)
构造并返回在int值之间动画的ValueAnimator。 一个单一的价值意味着那个价值是被动画的价值。 但是,这在ValueAnimator对象中通常不会有用,因为对象无法确定动画的起始值(与ObjectAnimator不同,后者可以从目标对象和属性进行动画获取该值)。 因此,通常应该有两个或更多的值。
Parameters | |
---|---|
values |
int : A set of values that the animation will animate between over time. |
Returns | |
---|---|
ValueAnimator |
A ValueAnimator object that is set up to animate between the given values. |
ValueAnimator ofObject (TypeEvaluator evaluator, Object... values)
构造并返回在对象值之间动画的ValueAnimator。 一个单一的价值意味着那个价值是被动画的价值。 但是,这在ValueAnimator对象中通常不会有用,因为对象无法确定动画的起始值(与ObjectAnimator不同,后者可以从目标对象和属性进行动画获取该值)。 因此,通常应该有两个或更多的值。
注意: Object值存储为对原始对象的引用,这意味着调用此方法后对这些对象的更改将影响动画器上的值。 如果在调用此方法后对象将在外部发生变化,则调用者应该传递这些对象的副本。
由于ValueAnimator不知道如何在任意对象之间进行动画处理,因此此工厂方法还会使用ValueAnimator将用于执行该插值的TypeEvaluator对象。
Parameters | |
---|---|
evaluator |
TypeEvaluator : A TypeEvaluator that will be called on each animation frame to provide the ncessry interpolation between the Object values to derive the animated value. |
values |
Object : A set of values that the animation will animate between over time. |
Returns | |
---|---|
ValueAnimator |
A ValueAnimator object that is set up to animate between the given values. |
ValueAnimator ofPropertyValuesHolder (PropertyValuesHolder... values)
构造并返回一个在PropertyValuesHolder对象中指定的值之间进行动画处理的ValueAnimator。
Parameters | |
---|---|
values |
PropertyValuesHolder : A set of PropertyValuesHolder objects whose values will be animated between over time. |
Returns | |
---|---|
ValueAnimator |
A ValueAnimator object that is set up to animate between the given values. |
void pause ()
暂停正在运行的动画。 该方法只应在与动画相同的线程上调用。 如果动画尚未started
或从此结束,则该呼叫将被忽略。 通过调用resume()
可以恢复暂停的动画。
void removeUpdateListener (ValueAnimator.AnimatorUpdateListener listener)
从侦听此动画帧更新的设备中删除侦听器。
Parameters | |
---|---|
listener |
ValueAnimator.AnimatorUpdateListener : the listener to be removed from the current set of update listeners for this animation. |
void resume ()
恢复暂停的动画,导致动画制作者在暂停时停止播放。 该方法只应在与动画相同的线程上调用。 对当前未暂停的动画制作者调用resume()将被忽略。
void reverse ()
反向播放ValueAnimator。 如果动画已经运行,它将自动停止,并在调用反向时从达到的点向后播放。 如果动画当前没有运行,那么它将从结尾开始并向后播放。 此行为仅针对当前动画设置; 将来播放的动画将使用默认的播放动作。
void setCurrentFraction (float fraction)
将动画的位置设置为指定的分数。 这个分数应该在0到动画的总分数之间,包括任何重复。 也就是说,0的一部分将在开始时定位动画,结尾的值为1,倒序动画的结尾的值为2,重复一次。 如果动画还没有开始,那么在它被设置为这个分数之后它不会前进; 它将简单地将分数设置为该值,并根据该分数执行任何适当的操作。 如果动画已经在运行,那么setCurrentFraction()会将当前分数设置为该值,并从该点继续播放。 Animator.AnimatorListener
事件不会由于更改分数而被调用; 这些事件只在动画运行时处理。
Parameters | |
---|---|
fraction |
float : The fraction to which the animation is advanced or rewound. Values outside the range of 0 to the maximum fraction for the animator will be clamped to the correct range. |
void setCurrentPlayTime (long playTime)
将动画的位置设置为指定的时间点。 这个时间应该在0到动画的总持续时间之间,包括任何重复。 如果动画还没有开始,那么在它被设置到这个时间之后它不会前进; 它会简单地将时间设置为该值并根据该时间执行任何适当的操作。 如果动画已经在运行,则setCurrentPlayTime()会将当前播放时间设置为此值,并从该点继续播放。
Parameters | |
---|---|
playTime |
long : The time, in milliseconds, to which the animation is advanced or rewound. |
ValueAnimator setDuration (long duration)
设置动画的长度。 默认持续时间是300毫秒。
Parameters | |
---|---|
duration |
long : The length of the animation, in milliseconds. This value cannot be negative. |
Returns | |
---|---|
ValueAnimator |
ValueAnimator The object called with setDuration(). This return value makes it easier to compose statements together that construct and then set the duration, as in ValueAnimator.ofInt(0, 10).setDuration(500).start() . |
void setEvaluator (TypeEvaluator value)
计算此动画的动画值时使用的类型评估程序。 系统将根据构造函数中的startValue
和endValue
的类型自动分配float或int评估器。 但是,如果这些值不是这些基本类型之一,或者需要进行不同的评估(例如必须使用表示颜色的int值),则需要指定自定义评估程序。 例如,在颜色值上运行动画时,应使用ArgbEvaluator
来获得正确的RGB颜色插值。
如果此ValueAnimator只有一组值正在动画之间,则此评估程序将用于该组。 如果有多组值正在设置动画,如果在ValueAnimator上设置了PropertyValuesHolder对象,则评估者将被分配给第一个PropertyValuesHolder对象。
Parameters | |
---|---|
value |
TypeEvaluator : the evaluator to be used this animation |
void setFloatValues (float... values)
设置将在之间动画的浮动值。 一个单一的价值意味着那个价值是被动画的价值。 但是,这在ValueAnimator对象中通常不会有用,因为对象无法确定动画的起始值(与ObjectAnimator不同,后者可以从目标对象和属性进行动画获取该值)。 因此,通常应该有两个或更多的值。
如果已经通过多个PropertyValuesHolder对象为此ValueAnimator定义了多组值,则此方法将为这些对象中的第一个设置值。
Parameters | |
---|---|
values |
float : A set of values that the animation will animate between over time. |
void setFrameDelay (long frameDelay)
动画每帧之间的时间量(以毫秒为单位)。 这是动画尝试遵守的请求时间,但帧之间的实际延迟可能不同,具体取决于系统负载和功能。 这是一个静态函数,因为相同的延迟将应用于所有动画,因为它们都是从单个定时循环中运行的。 当动画系统使用外部定时源(例如显示刷新率(vsync))来管理动画时,帧延迟可能会被忽略。 请注意,应该从调用start()
的相同线程调用此方法,以便让新的帧延迟在该动画上生效。 如果调用线程没有Looper,则会引发运行时异常。
Parameters | |
---|---|
frameDelay |
long : the requested time between frames, in milliseconds |
void setIntValues (int... values)
设置将在之间进行动画处理的int值。 一个单一的价值意味着那个价值是被动画的价值。 但是,这在ValueAnimator对象中通常不会有用,因为对象无法确定动画的起始值(与ObjectAnimator不同,后者可以从目标对象和属性进行动画获取该值)。 因此,通常应该有两个或更多的值。
如果已经通过多个PropertyValuesHolder对象为此ValueAnimator定义了多组值,则此方法将为这些对象中的第一个设置值。
Parameters | |
---|---|
values |
int : A set of values that the animation will animate between over time. |
void setInterpolator (TimeInterpolator value)
用于计算此动画的已用部分的时间插值器。 内插器确定动画是以线性还是非线性运动(如加速度和减速度)运行。 默认值是AccelerateDecelerateInterpolator
Parameters | |
---|---|
value |
TimeInterpolator : the interpolator to be used by this animation. A value of null will result in linear interpolation. |
void setObjectValues (Object... values)
为此动画设置动画值。 一个单一的价值意味着那个价值是被动画的价值。 但是,这在ValueAnimator对象中通常不会有用,因为对象无法确定动画的起始值(与ObjectAnimator不同,后者可以从目标对象和属性进行动画获取该值)。 因此,通常应该有两个或更多的值。
注意: Object值存储为对原始对象的引用,这意味着调用此方法后对这些对象的更改将影响动画器上的值。 如果在调用此方法后对象将在外部发生变化,则调用者应该传递这些对象的副本。
如果已经通过多个PropertyValuesHolder对象为此ValueAnimator定义了多组值,则此方法将为这些对象中的第一个设置值。
在ValueAnimator上应该有一个TypeEvaluator,它知道如何在这些值对象之间进行插值。 ValueAnimator只知道如何在其他setValues()方法中指定的基本类型之间进行插值。
Parameters | |
---|---|
values |
Object : The set of values to animate between. |
void setRepeatCount (int value)
设置动画应重复多少次。 如果重复计数为0,则动画不会重复。 如果重复计数大于0或INFINITE
,则会考虑重复模式。 重复计数默认为0。
Parameters | |
---|---|
value |
int : the number of times the animation should be repeated |
void setRepeatMode (int value)
定义此动画在到达结尾时应该执行的操作。 仅当重复计数大于0或INFINITE
时才应用此设置。 默认为RESTART
。
Parameters | |
---|---|
value |
int : RESTART or REVERSE |
void setStartDelay (long startDelay)
调用start()
后延迟启动动画的时间量(以毫秒为单位)。 请注意,启动延迟应始终为非负值。 在N及以上时,任何负启动延迟将被钳位到0。
Parameters | |
---|---|
startDelay |
long : The amount of the delay, in milliseconds |
void setValues (PropertyValuesHolder... values)
设置每个属性的值,之间进行动画处理。 该函数由ValueAnimator的构造函数在内部调用,该函数接受值列表。 但是ValueAnimator可以在没有值的情况下构造,并且可以调用此方法手动设置值。
Parameters | |
---|---|
values |
PropertyValuesHolder : The set of values, per property, being animated between. |
void start ()
开始这个动画。 如果动画具有非零的startDelay,则动画将在延迟消逝后开始运行。 非延迟动画将立即设置其初始值,然后调用onAnimationStart(Animator)
以供该动画师的任何听众使用。
通过调用此方法开始的动画将在调用此方法的线程上运行。 这个线程应该有一个Looper(如果不是这种情况,将会抛出一个运行时异常)。 此外,如果动画会为视图层次结构中的对象的属性制作动画,则调用线程应该是该视图层次结构的UI线程。
String toString ()
返回对象的字符串表示形式。 通常, toString
方法会返回一个“文本地表示”该对象的字符串。 结果应该是一个简洁但内容丰富的表述,对于一个人来说很容易阅读。 建议所有子类重写此方法。
toString
类的方法Object
返回一个字符串,其中包含对象为实例的类的名称,符号字符“ @
”以及对象的哈希代码的无符号十六进制表示形式。 换句话说,这个方法返回一个字符串,其值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
Returns | |
---|---|
String |
a string representation of the object. |