blob: 561369d2fe862debd450029de6249a70162710b3 [file] [log] [blame]
page.title=Animation
@jd:body
<div id="qv-wrapper">
<div id="qv">
<h2>See also</h2>
<ol>
<li><a href="{@docRoot}guide/topics/graphics/prop-animation.html">Property
Animation</a></li>
<li><a href="{@docRoot}guide/topics/graphics/view-animation.html">View Animation</a></li>
<li><a href="{@docRoot}guide/topics/graphics/drawable-animation.html">Drawable Animation</a></li>
<ol>
</div>
</div>
<p>The Android framework provides two animation systems: property animation
(introduced in Android 3.0) and view animation. Both animation systems are viable options,
but the property animation system, in general, is the preferred method to use, because it
is more flexible and offers more features. In addition to these two systems, you can utilize Drawable
animation, which allows you to load drawable resources and display them one frame after
another.</p>
<p>The view animation system provides the capability to only animate {@link android.view.View}
objects, so if you wanted to animate non-{@link android.view.View} objects, you have to implement
your own code to do so. The view animation system is also constrained in the fact that it only
exposes a few aspects of a {@link android.view.View} object to animate, such as the scaling and
rotation of a View but not the background color, for instance.</p>
<p>Another disadvantage of the view animation system is that it only modified where the
View was drawn, and not the actual View itself. For instance, if you animated a button to move
across the screen, the button draws correctly, but the actual location where you can click the
button does not change, so you have to implement your own logic to handle this.</p>
<p>With the property animation system, these constraints are completely removed, and you can animate
any property of any object (Views and non-Views) and the object itself is actually modified.
The property animation system is also more robust in the way it carries out animation. At
a high level, you assign animators to the properties that you want to animate, such as color,
position, or size and can define aspects of the animation such as interpolation and
synchronization of multiple animators.</p>
<p>The view animation system, however, takes less time to setup and requires less code to write.
If view animation accomplishes everything that you need to do, or if your existing code already
works the way you want, there is no need to use the property animation system. It also might
make sense to use both animation systems for different situations if the use case arises.</p>
<dl>
<dt><strong><a href="{@docRoot}guide/topics/graphics/prop-animation.html">Property
Animation</a></strong></dt>
<dd>Introduced in Android 3.0 (API level 11), the property animation system lets you
animate properties of any object, including ones that are not rendered to the screen. The system is
extensible and lets you animate properties of custom types as well.</dd>
<dt><strong><a href="{@docRoot}guide/topics/graphics/view-animation.html">View
Animation</a></strong></dt>
<dd>View Animation is the older system and can only be used for Views. It is relatively easy to
setup and offers enough capabilities to meet many application's needs.</dd>
</dl>
<dt><strong><a href="{@docRoot}guide/topics/graphics/drawable-animation.html">Drawable
Animation</a></strong></dt>
<dd>Drawable animation involves displaying {@link android.graphics.drawable.Drawable} resources one
after another, like a roll of film. This method of animation is useful if you want to animate
things that are easier to represent with Drawable resources, such as a progression of bitmaps.</dd>