1f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainpage.title=Animation Resources
2f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainparent.title=Resource Types
3f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainparent.link=available-resources.html
4f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main@jd:body
5f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
6f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<div id="qv-wrapper">
7f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <div id="qv">
84d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly   <h2>In this document</h2>
94d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    <ol>
104d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly      <li><a href="#Property">Property Animation</a></li>
114d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly      <li><a href="#View">View Animation</a>
124d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <ol>
1319aad293c0dba4ed9a47939c487fecdd5318ef08Scott Main          <li><a href="#Tween">Tween animation</a></li>
1419aad293c0dba4ed9a47939c487fecdd5318ef08Scott Main          <li><a href="#Frame">Frame animation</a></li>
154d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </ol>      
164d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly      </li>
174d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    </ol>
18f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <h2>See also</h2>
19f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <ol>
204d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly      <li><a href="{@docRoot}guide/topics/graphics/view-animation.html">View Animation</a></li>
2150e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main      <li><a href="{@docRoot}guide/topics/graphics/prop-animation.html">Property Animation</a></li>
22f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    </ol>
23f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  </div>
24f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</div>
25f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
26f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
27f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<p>An animation resource can define one of two types of animations:</p>
284d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
29f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dl>
304d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly  <dt><a href="#Property">Property Animation</a></dt>
314d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly  <dd>Creates an animation by modifying an object's property values over a set period
324d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly  of time with an {@link android.animation.Animator}.</dd>
334d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly  <dt><a href="#View">View Animation</a></dt>
344d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly  <dd>
354d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly  <p>There are two types of animations that you can do with the view animation framework:</p>
364d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly  <ul>
374d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    <li><a href="#Tween">Tween animation</a>: Creates an animation by performing a series of transformations on a single image
384d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    with an {@link android.view.animation.Animation}</li>
394d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    <li><a href="#Frame">Frame animation</a>: or creates an animation by showing a sequence of images in order
404d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    with an {@link android.graphics.drawable.AnimationDrawable}.</li>
414d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly  </ul>
424d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly  </dd>
43f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</dl>
44f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
45f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
464d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<h2 id="Property">Property Animation</h2>
474d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<p>An animation defined in XML that modifies properties of the target object, such as
484d1824206bc223bb18ad063826ddade6c7a31ac1Robert Lybackground color or alpha value, over a set amount of time.</p>
49f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
504d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<dl class="xml">
514d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
524d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<dt>file location:</dt>
534d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<dd><code>res/animator/<em>filename</em>.xml</code><br/>
544d1824206bc223bb18ad063826ddade6c7a31ac1Robert LyThe filename will be used as the resource ID.</dd>
554d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
564d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<dt>compiled resource datatype:</dt>
574d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<dd>Resource pointer to a {@link android.animation.ValueAnimator}, {@link android.animation.ObjectAnimator},
584d1824206bc223bb18ad063826ddade6c7a31ac1Robert Lyor {@link android.animation.AnimatorSet}.</dd>
594d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
604d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<dt>resource reference:</dt>
614d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<dd>
624d1824206bc223bb18ad063826ddade6c7a31ac1Robert LyIn Java: <code>R.animator.<em>filename</em></code><br/>
634d1824206bc223bb18ad063826ddade6c7a31ac1Robert LyIn XML: <code>@[<em>package</em>:]animator/<em>filename</em></code>
644d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly</dd>
654d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
664d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<dt>syntax:</dt>
674d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<dd>
684d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<pre class="stx">
694d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly&lt;<a href="#animator-set-element">set</a>
704d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly  android:ordering=["together" | "sequentially"]&gt;
714d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
724d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    &lt;<a href="#obj-animator-element">objectAnimator</a>
734d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        android:propertyName="<em>string</em>"
744d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        android:duration="<em>int</em>"
754d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        android:valueFrom="<em>float</em> | <em>int</em> | <em>color</em>"
764d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        android:valueTo="<em>float</em> | <em>int</em> | <em>color</em>"
774d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        android:startOffset="<em>int</em>"
784d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        android:repeatCount="<em>int</em>"
794d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        android:repeatMode=["repeat" | "reverse"]
804d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        android:valueType=["intType" | "floatType"]/&gt;
814d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
824d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    &lt;<a href="#val-animator-element">animator</a>
834d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        android:duration="<em>int</em>"
844d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        android:valueFrom="<em>float</em> | <em>int</em> | <em>color</em>"
854d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        android:valueTo="<em>float</em> | <em>int</em> | <em>color</em>"
864d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        android:startOffset="<em>int</em>"
874d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        android:repeatCount="<em>int</em>"
884d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        android:repeatMode=["repeat" | "reverse"]
894d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        android:valueType=["intType" | "floatType"]/&gt;
904d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
914d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    &lt;<a href="#animator-set-element">set</a>&gt;
924d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        ...
934d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    &lt;/set&gt;
944d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly&lt;/set&gt;
954d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly</pre>
964d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
974d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<p>The file must have a single root element: either 
984d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<code>&lt;set&gt;</code>, <code>&lt;objectAnimator&gt;</code>, or <code>&lt;valueAnimator&gt;</code>. You can
994d1824206bc223bb18ad063826ddade6c7a31ac1Robert Lygroup animation elements together inside the <code>&lt;set&gt;</code> element, including other
1004d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<code>&lt;set&gt;</code> elements.
1014d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly</p>
1024d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly</dd>
1034d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
1044d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<dt>elements:</dt>
1054d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly  <dd>
1064d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly  <dl class="tag-list">
1074d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    <dt id="animator-set-element"><code>&lt;set&gt;</code></dt>
1084d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    <dd>A container that holds other animation elements (<code>&lt;objectAnimator&gt;</code>,
1094d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    <code>&lt;valueAnimator&gt;</code>, or other <code>&lt;set&gt;</code> elements).  Represents
1104d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    an {@link android.animation.AnimatorSet}.
1114d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    <p>You can specify nested <code>&lt;set&gt;</code> tags to further
1124d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    group animations together. Each <code>&lt;set&gt;</code> can define its own 
1134d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    <code>ordering</code> attribute.</p>
1144d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
1154d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly      <p class="caps">attributes:</p>
1164d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly      <dl class="atn-list">
1174d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dt>
1184d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <code>android:ordering</code>
1194d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dt>
1204d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dd>
1214d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <em>Keyword</em>. Specifies the play ordering of animations in this set.
1224d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <table> 
1234d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly            <tr><th>Value</th><th>Description</th></tr> 
1244d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly            <tr><td><code>sequentially</code></td><td>Play animations in this set sequentially</td></tr> 
1254d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly            <tr><td><code>together</code> (default)</td><td>Play animations in this set at the same time.</td></tr> 
1264d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          </table> 
1274d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dd>
1284d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly      </dl>
1294d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    </dd>
1304d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
1314d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly  <dt id="obj-animator-element"><code>&lt;objectAnimator&gt;</code></dt>
1324d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    <dd>Animates a specific property of an object over a specific amount of time. Represents
1334d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    an {@link android.animation.ObjectAnimator}.</p>
1344d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    
1354d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly      <p class="caps">attributes:</p>
1364d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly      <dl class="atn-list">
1374d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dt>
1384d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <code>android:propertyName</code> 
1394d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dt>
1404d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dd>
1414d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <em>String</em>. <strong>Required</strong>. The object's property to animate, referenced by its name. For example you can specify
1424d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <code>"alpha"</code> or <code>"backgroundColor"</code> for a View object.
1434d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          The <code>objectAnimator</code> element does not expose a <code>target</code>
1444d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          attribute, however, so you cannot set the object to animate in the XML declaration. You have to
1454d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          inflate your animation XML resource by calling {@link android.animation.AnimatorInflater#loadAnimator
1464d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          loadAnimator()} and call {@link android.animation.ObjectAnimator#setTarget setTarget()} to set
1474d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          the target object that contains this property.
1484d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dd>
1494d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
1504d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dt>
1514d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <code>android:valueTo</code>
1524d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dt>
1534d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dd>
1544d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <em>float, int, or color</em>. <strong>Required</strong>. The value where the animated property ends. Colors are represented
1554d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          as six digit hexadecimal numbers (for example, #333333).
1564d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dd>
1574d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
1584d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dt>
1594d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <code>android:valueFrom</code>
1604d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dt>
1614d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dd>
1624d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <em>float, int, or color</em>. The value where the animated property starts. If not
1634d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          specified, the animation starts at the value obtained by the property's get method. Colors are represented
1644d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          as six digit hexadecimal numbers (for example, #333333).
1654d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dd>
1664d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
1674d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dt>
1684d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <code>android:duration</code>
1694d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dt>
1704d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dd>
1714d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <em>int</em>. The time in milliseconds of the animation. 300 milliseconds is the default.
1724d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dd>
1734d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
1744d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dt>
1754d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <code>android:startOffset</code>
1764d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dt>
1774d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dd>
1784d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <em>int</em>. The amount of milliseconds the animation delays after
1794d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          {@link android.animation.ObjectAnimator#start start()} is called.
1804d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dd>
1814d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
1824d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dt>
1834d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <code>android:repeatCount</code>
1844d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dt>
1854d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dd>
1864d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <em>int</em>. How many times to repeat an animation. Set to <code>"-1"</code> to infinitely
1874d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          repeat or to a positive integer. For example, a value of <code>"1"</code> means that the animation
1884d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          is repeated once after the initial run of the animation, so the animation plays a total
1894d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          of two times. The default value is <code>"0"</code>, which means no repetition.
1904d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
1914d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dd>
1924d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
1934d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dt>
1944d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <code>android:repeatMode</code>
1954d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dt>
1964d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dd>
1974d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <em>int</em>. How an animation behaves when it reaches the end of the animation. <code>android:repeatCount</code>
1984d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          must be set to a positive integer or <code>"-1"</code> for this attribute to have an effect. Set to <code>"reverse"</code>
1994d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          to have the animation reverse direction with each iteration or <code>"repeat"</code> to have the animation
2004d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          loop from the beginning each time.
2014d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dd>
2024d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
2034d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dt>
2044d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <code>android:valueType</code>
2054d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dt>
2064d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dd>
2074d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <em>Keyword</em>. Do not specify this attribute if the value is a color. The animation framework automatically handles color
2084d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          values
2094d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <table> 
2104d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly            <tr><th>Value</th><th>Description</th></tr> 
2114d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly            <tr><td><code>intType</code></td><td>Specifies that the animated values are integers</td></tr> 
2124d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly            <tr><td><code>floatType</code> (default)</td><td>Specifies that the animated values are floats</td></tr> 
2134d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          </table> 
2144d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dd>
2154d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
2164d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly      </dl>
2174d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    </dd>
2184d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
2194d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<dt id="val-animator-element"><code>&lt;animator&gt;</code></dt>
220a15afd2bc4b103146497b521c09c73722a8e3725Scott Main    <dd>Performs an animation over a specified amount of time.
2214d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    Represents a {@link android.animation.ValueAnimator}.
2224d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
2234d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly      <p class="caps">attributes:</p>
2244d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly      <dl class="atn-list">
2254d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dt>
2264d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <code>android:valueTo</code>
2274d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dt>
2284d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dd>
2294d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <em>float, int, or color</em>. <strong>Required</strong>. The value where the animation ends. Colors are represented
2304d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          as six digit hexadecimal numbers (for example, #333333).
2314d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dd>
2324d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
2334d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dt>
2344d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <code>android:valueFrom</code>
2354d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dt>
2364d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dd>
2374d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <em>float, int, or color</em>. <strong>Required</strong>. The value where the animation starts. Colors are represented
2384d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          as six digit hexadecimal numbers (for example, #333333).
2394d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dd>
2404d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
2414d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dt>
2424d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <code>android:duration</code>
2434d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dt>
2444d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dd>
2454d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <em>int</em>. The time in milliseconds of the animation. 300ms is the default.
2464d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dd>
2474d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
2484d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dt>
2494d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <code>android:startOffset</code>
2504d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dt>
2514d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dd>
2524d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <em>int</em>. The amount of milliseconds the animation delays after
2534d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          {@link android.animation.ValueAnimator#start start()} is called.
2544d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dd>
2554d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
2564d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dt>
2574d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <code>android:repeatCount</code>
2584d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dt>
2594d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dd>
2604d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <em>int</em>. How many times to repeat an animation. Set to <code>"-1"</code> to infinitely
2614d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          repeat or to a positive integer. For example, a value of <code>"1"</code> means that the animation
2624d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          is repeated once after the initial run of the animation, so the animation plays a total
2634d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          of two times. The default value is <code>"0"</code>, which means no repetition.
2644d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dd>
2654d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
2664d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dt>
2674d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <code>android:repeatMode</code>
2684d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dt>
2694d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dd>
2704d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <em>int</em>. How an animation behaves when it reaches the end of the animation. <code>android:repeatCount</code>
2714d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          must be set to a positive integer or <code>"-1"</code> for this attribute to have an effect. Set to <code>"reverse"</code>
2724d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          to have the animation reverse direction with each iteration or <code>"repeat"</code> to have the animation
2734d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          loop from the beginning each time.
2744d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dd>
2754d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
2764d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dt>
2774d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <code>android:valueType</code>
2784d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dt>
2794d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        <dd>
2804d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <em>Keyword</em>. Do not specify this attribute if the value is a color. The animation framework automatically handles color
2814d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          values.
2824d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          <table> 
2834d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly            <tr><th>Value</th><th>Description</th></tr> 
2844d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly            <tr><td><code>intType</code></td><td>Specifies that the animated values are integers</td></tr> 
2854d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly            <tr><td><code>floatType</code> (default)</td><td>Specifies that the animated values are floats</td></tr> 
2864d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly          </table> 
2874d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        </dd>
2884d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
2894d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly      </dl>
2904d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    </dd>
2914d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly  </dl>
2924d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
2934d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly</dd> <!-- end  elements and attributes -->
2944d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
2954d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<dt>example:</dt>
2964d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<dd>
2974d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly  <pp>XML file saved at <code>res/animator/property_animator.xml</code>:</p>
2984d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<pre>
2994d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly&lt;set android:ordering="sequentially"&gt;
3004d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    &lt;set&gt;
3014d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        &lt;objectAnimator
3024d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly            android:propertyName="x"
3034d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly            android:duration="500"
3044d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly            android:valueTo="400"
3054d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly            android:valueType="intType"/&gt;
3064d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        &lt;objectAnimator
3074d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly            android:propertyName="y"
3084d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly            android:duration="500"
3094d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly            android:valueTo="300"
3104d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly            android:valueType="intType"/&gt;
3114d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    &lt;/set&gt;
3124d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    &lt;objectAnimator
3134d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        android:propertyName="alpha"
3144d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        android:duration="500"
3154d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly        android:valueTo="1f"/&gt;
3164d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly&lt;/set&gt;
3174d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly</pre>
3184d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly  <p>In order to run this animation, you must inflate the XML resources in your code to an {@link
3194d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly  android.animation.AnimatorSet} object, and then set the target objects for all of the animations
3204d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly  before starting the animation set. Calling {@link android.animation.AnimatorSet#setTarget
3214d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly  setTarget()} sets a single target object for all children of the {@link
3224d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly  android.animation.AnimatorSet} as a convenience. The following code shows how to do this:</p>
3234d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly  
3244d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<pre>
3254d1824206bc223bb18ad063826ddade6c7a31ac1Robert LyAnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(myContext,
3264d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly    R.anim.property_animator);
3274d1824206bc223bb18ad063826ddade6c7a31ac1Robert Lyset.setTarget(myObject);
3284d1824206bc223bb18ad063826ddade6c7a31ac1Robert Lyset.start();
3294d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly</pre>
3304d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
3314d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
3324d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly</dd> <!-- end example -->
3334d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
3344d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<dt>see also:</dt>
3354d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<dd>
3364d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<ul>
33750e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main  <li><a href="{@docRoot}guide/topics/graphics/prop-animation.html">Property Animation</a></li>
338cd1b08e1e239269f7d0d48119505313f52d3dd5aScott Main  <li><a href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/animation/index.html">API Demos</a> for examples
3394d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly  on how to use the property animation system.</li>
3404d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly</ul>
3414d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly</dd>
3424d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
3434d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly</dl>
3444d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
3454d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<h2 id="View">View Animation</h2>
3464d1824206bc223bb18ad063826ddade6c7a31ac1Robert LyThe view animation framework supports both tween and frame by frame animations, which can both be declared
3474d1824206bc223bb18ad063826ddade6c7a31ac1Robert Lyin XML. The following sections describe how to use both methods.
3484d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly
3494d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<h3 id="Tween">Tween animation</h3>
350f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
351f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<p>An animation defined in XML that performs transitions such as rotating,
352f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainfading, moving, and stretching on a graphic.
353f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</p>
354f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
355f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dl class="xml">
356f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
357f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dt>file location:</dt>
358f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dd><code>res/anim/<em>filename</em>.xml</code><br/>
359f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott MainThe filename will be used as the resource ID.</dd>
360f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
361f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dt>compiled resource datatype:</dt>
362f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dd>Resource pointer to an {@link android.view.animation.Animation}.</dd>
363f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
364f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dt>resource reference:</dt>
365f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dd>
366f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott MainIn Java: <code>R.anim.<em>filename</em></code><br/>
367f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott MainIn XML: <code>@[<em>package</em>:]anim/<em>filename</em></code>
368f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</dd>
369f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
370f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dt>syntax:</dt>
371f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dd>
372f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<pre class="stx">
373f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main&lt;?xml version="1.0" encoding="utf-8"?>
374f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main&lt;<a href="#set-element">set</a> xmlns:android="http://schemas.android.com/apk/res/android"
375f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    android:interpolator="@[package:]anim/<em>interpolator_resource</em>"
376f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    android:shareInterpolator=["true" | "false"] &gt;
377f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    &lt;<a href="#alpha-element">alpha</a>
378f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        android:fromAlpha="<em>float</em>"
379f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        android:toAlpha="<em>float</em>" /&gt;
380f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    &lt;<a href="#scale-element">scale</a>
381f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        android:fromXScale="<em>float</em>"
382f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        android:toXScale="<em>float</em>"
383f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        android:fromYScale="<em>float</em>"
384f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        android:toYScale="<em>float</em>"
385c6cb8a78d03cda44a49a990b4d4153560bee7420Scott Main        android:pivotX="<em>float</em>"
386c6cb8a78d03cda44a49a990b4d4153560bee7420Scott Main        android:pivotY="<em>float</em>" /&gt;
387f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    &lt;<a href="#translate-element">translate</a>
388218284528bfeebe829633c6977d5fbbbfd144fcfChristian Mehlmauer        android:fromXDelta="<em>float</em>"
389218284528bfeebe829633c6977d5fbbbfd144fcfChristian Mehlmauer        android:toXDelta="<em>float</em>"
390218284528bfeebe829633c6977d5fbbbfd144fcfChristian Mehlmauer        android:fromYDelta="<em>float</em>"
391218284528bfeebe829633c6977d5fbbbfd144fcfChristian Mehlmauer        android:toYDelta="<em>float</em>" /&gt;
392f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    &lt;<a href="#rotate-element">rotate</a>
393f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        android:fromDegrees="<em>float</em>"
394f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        android:toDegrees="<em>float</em>"
395c6cb8a78d03cda44a49a990b4d4153560bee7420Scott Main        android:pivotX="<em>float</em>"
396c6cb8a78d03cda44a49a990b4d4153560bee7420Scott Main        android:pivotY="<em>float</em>" /&gt;
397f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    &lt;<a href="#set-element">set</a>&gt;
398f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        ...
399f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    &lt;/set&gt;
400f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main&lt;/set&gt;
401f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</pre>
402f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
403f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<p>The file must have a single root element: either an
404f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<code>&lt;alpha&gt;</code>, <code>&lt;scale&gt;</code>, <code>&lt;translate&gt;</code>,
405f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<code>&lt;rotate&gt;</code>, or <code>&lt;set&gt;</code> element that holds
406f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Maina group (or groups) of other animation elements (even nested <code>&lt;set&gt;</code> elements).
407f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</p>
408f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</dd>
409f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
410f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dt>elements:</dt>
411f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dd>
412f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dl class="tag-list">
413f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <dt id="set-element"><code>&lt;set&gt;</code></dt>
414f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <dd>A container that holds other animation elements
415f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main(<code>&lt;alpha&gt;</code>, <code>&lt;scale&gt;</code>, <code>&lt;translate&gt;</code>,
416f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<code>&lt;rotate&gt;</code>) or other <code>&lt;set&gt;</code> elements. Represents an {@link
417f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainandroid.view.animation.AnimationSet}.
418f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <p class="caps">attributes:</p>
419f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <dl class="atn-list">
420f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dt><code>android:interpolator</code></dt>
421f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main          <dd><em>Interpolator resource</em>.
422f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main          An {@link android.view.animation.Interpolator} to apply on the animation.
423f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main          The value must be a reference to a resource that specifies an interpolator
424f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main          (not an interpolator class name). There are default interpolator
425f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main          resources available from the platform or you can create your own interpolator resource.
426f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main          See the discussion below for more about <a href="#Interpolators">Interpolators</a>.</dd>
427f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dt><code>android:shareInterpolator</code></dt>
428f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main          <dd><em>Boolean</em>. "true" if you want to share the same interpolator among all child
429f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainelements.</dd>
430f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      </dl>
431f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    </dd>
432f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <dt id="alpha-element"><code>&lt;alpha&gt;</code></dt>
433f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <dd>A fade-in or fade-out animation. Represents an {@link
434f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainandroid.view.animation.AlphaAnimation}.
435f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <p class="caps">attributes:</p>
436f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <dl class="atn-list">
437f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dt><code>android:fromAlpha</code></dt>
438f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main          <dd><em>Float</em>. Starting opacity offset, where 0.0 is transparent and 1.0
439f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainis opaque.</dd>
440f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dt><code>android:toAlpha</code></dt>
441f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main          <dd><em>Float</em>. Ending opacity offset, where 0.0 is transparent and 1.0
442f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainis opaque.</dd>
443f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      </dl>
444f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <p>For more attributes supported by <code>&lt;alpha&gt;</code>, see the
445f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main{@link android.view.animation.Animation} class reference (of which, all XML attributes are
446f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Maininherrited by this element).</p>
447f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    </dd>
448f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <dt id="scale-element"><code>&lt;scale&gt;</code></dt>
449f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <dd>A resizing animation. You can specify the center point of the image from which it grows
450f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainoutward (or inward) by specifying {@code pivotX} and {@code pivotY}. For example, if these values
451f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainare 0, 0 (top-left corner), all growth will be down and to the right. Represents a {@link
452f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainandroid.view.animation.ScaleAnimation}.
453f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <p class="caps">attributes:</p>
454f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <dl class="atn-list">
455f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dt><code>android:fromXScale</code></dt>
456f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main          <dd><em>Float</em>. Starting X size offset, where 1.0 is no change.</dd>
457f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dt><code>android:toXScale</code></dt>
458f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main          <dd><em>Float</em>. Ending X size offset, where 1.0 is no change.</dd>
459f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dt><code>android:fromYScale</code></dt>
460f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main          <dd><em>Float</em>. Starting Y size offset, where 1.0 is no change.</dd>
461f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dt><code>android:toYScale</code></dt>
462f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main          <dd><em>Float</em>. Ending Y size offset, where 1.0 is no change.</dd>
463f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dt><code>android:pivotX</code></dt>
464f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main          <dd><em>Float</em>. The X coordinate to remain fixed when the object is scaled.</dd>
465f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dt><code>android:pivotY</code></dt>
466f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main          <dd><em>Float</em>. The Y coordinate to remain fixed when the object is scaled.</dd>
467f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      </dl>
468f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <p>For more attributes supported by <code>&lt;scale&gt;</code>, see the
469f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main{@link android.view.animation.Animation} class reference (of which, all XML attributes are
470f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Maininherrited by this element).</p>
471f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    </dd>
472f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <dt id="translate-element"><code>&lt;translate&gt;</code></dt>
473f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <dd>A vertical and/or horizontal motion. Supports the following attributes in any of
474f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainthe following three formats: values from -100 to 100 ending with "%", indicating a percentage
475f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainrelative to itself; values from -100 to 100 ending in "%p", indicating a percentage relative to its
476f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainparent; a float value with no suffix, indicating an absolute value. Represents a {@link
477f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainandroid.view.animation.TranslateAnimation}.
478f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <p class="caps">attributes:</p>
479f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <dl class="atn-list">
480f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dt><code>android:fromXDelta</code></dt>
481c6cb8a78d03cda44a49a990b4d4153560bee7420Scott Main          <dd><em>Float or percentage</em>. Starting X offset. Expressed either: in pixels relative
482c6cb8a78d03cda44a49a990b4d4153560bee7420Scott Mainto the normal position (such as {@code "5"}), in percentage relative to the element width (such as
483c6cb8a78d03cda44a49a990b4d4153560bee7420Scott Main{@code "5%"}), or in percentage relative to the parent width (such as {@code "5%p"}).</dd>
484f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dt><code>android:toXDelta</code></dt>
485c6cb8a78d03cda44a49a990b4d4153560bee7420Scott Main          <dd><em>Float or percentage</em>. Ending X offset. Expressed either: in pixels relative
486c6cb8a78d03cda44a49a990b4d4153560bee7420Scott Mainto the normal position (such as {@code "5"}), in percentage relative to the element width (such as
487c6cb8a78d03cda44a49a990b4d4153560bee7420Scott Main{@code "5%"}), or in percentage relative to the parent width (such as {@code "5%p"}).</dd>
488f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dt><code>android:fromYDelta</code></dt>
489c6cb8a78d03cda44a49a990b4d4153560bee7420Scott Main          <dd><em>Float or percentage</em>. Starting Y offset. Expressed either: in pixels relative
490c6cb8a78d03cda44a49a990b4d4153560bee7420Scott Mainto the normal position (such as {@code "5"}), in percentage relative to the element height (such as
491c6cb8a78d03cda44a49a990b4d4153560bee7420Scott Main{@code "5%"}), or in percentage relative to the parent height (such as {@code "5%p"}).</dd>
492f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dt><code>android:toYDelta</code></dt>
493c6cb8a78d03cda44a49a990b4d4153560bee7420Scott Main          <dd><em>Float or percentage</em>. Ending Y offset. Expressed either: in pixels relative
494c6cb8a78d03cda44a49a990b4d4153560bee7420Scott Mainto the normal position (such as {@code "5"}), in percentage relative to the element height (such as
495c6cb8a78d03cda44a49a990b4d4153560bee7420Scott Main{@code "5%"}), or in percentage relative to the parent height (such as {@code "5%p"}).</dd>
496f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      </dl>
497f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <p>For more attributes supported by <code>&lt;translate&gt;</code>, see the
498f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main{@link android.view.animation.Animation} class reference (of which, all XML attributes are
499f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Maininherrited by this element).</p>
500f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    </dd>
501f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <dt id="rotate-element"><code>&lt;rotate&gt;</code></dt>
502f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <dd>A rotation animation. Represents a {@link android.view.animation.RotateAnimation}.
503f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <p class="caps">attributes:</p>
504f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <dl class="atn-list">
505f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dt><code>android:fromDegrees</code></dt>
506c6cb8a78d03cda44a49a990b4d4153560bee7420Scott Main          <dd><em>Float</em>. Starting angular position, in degrees.</dd>
507f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dt><code>android:toDegrees</code></dt>
508c6cb8a78d03cda44a49a990b4d4153560bee7420Scott Main          <dd><em>Float</em>. Ending angular position, in degrees.</dd>
509f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dt><code>android:pivotX</code></dt>
510c6cb8a78d03cda44a49a990b4d4153560bee7420Scott Main          <dd><em>Float or percentage</em>. The X coordinate of the center of rotation. Expressed
511c6cb8a78d03cda44a49a990b4d4153560bee7420Scott Maineither: in pixels relative to the object's left edge (such as {@code "5"}), in percentage relative
512c6cb8a78d03cda44a49a990b4d4153560bee7420Scott Mainto the object's left edge (such as {@code "5%"}), or in percentage relative to the parent
513c6cb8a78d03cda44a49a990b4d4153560bee7420Scott Maincontainer's left edge (such as {@code "5%p"}).</dd>
514f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dt><code>android:pivotY</code></dt>
515c6cb8a78d03cda44a49a990b4d4153560bee7420Scott Main          <dd><em>Float or percentage</em>. The Y coordinate of the center of rotation. Expressed
516c6cb8a78d03cda44a49a990b4d4153560bee7420Scott Maineither: in pixels relative to the object's top edge (such as {@code "5"}), in percentage relative
517c6cb8a78d03cda44a49a990b4d4153560bee7420Scott Mainto the object's top edge (such as {@code "5%"}), or in percentage relative to the parent
518c6cb8a78d03cda44a49a990b4d4153560bee7420Scott Maincontainer's top edge (such as {@code "5%p"}).</dd>
519f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        </dl>
520f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <p>For more attributes supported by <code>&lt;rotate&gt;</code>, see the
521f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main{@link android.view.animation.Animation} class reference (of which, all XML attributes are
522f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Maininherrited by this element).</p>
523f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    </dd>
524f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</dl>
525f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</dd> <!-- end  elements and attributes -->
526f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
527f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dt>example:</dt>
528f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dd>
529f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <pp>XML file saved at <code>res/anim/hyperspace_jump.xml</code>:</p>
530f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<pre>
531f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main&lt;set xmlns:android="http://schemas.android.com/apk/res/android"
532f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    android:shareInterpolator="false">
533f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    &lt;scale
534f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
535218284528bfeebe829633c6977d5fbbbfd144fcfChristian Mehlmauer        android:fromXScale="1.0"
536218284528bfeebe829633c6977d5fbbbfd144fcfChristian Mehlmauer        android:toXScale="1.4"
537218284528bfeebe829633c6977d5fbbbfd144fcfChristian Mehlmauer        android:fromYScale="1.0"
538218284528bfeebe829633c6977d5fbbbfd144fcfChristian Mehlmauer        android:toYScale="0.6"
539f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        android:pivotX="50%"
540f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        android:pivotY="50%"
541f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        android:fillAfter="false"
542f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        android:duration="700" />
543f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    &lt;set
544f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        android:interpolator="@android:anim/accelerate_interpolator"
545f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        android:startOffset="700">
546f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        &lt;scale
547218284528bfeebe829633c6977d5fbbbfd144fcfChristian Mehlmauer            android:fromXScale="1.4"
548f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main            android:toXScale="0.0"
549f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main            android:fromYScale="0.6"
550218284528bfeebe829633c6977d5fbbbfd144fcfChristian Mehlmauer            android:toYScale="0.0"
551218284528bfeebe829633c6977d5fbbbfd144fcfChristian Mehlmauer            android:pivotX="50%"
552218284528bfeebe829633c6977d5fbbbfd144fcfChristian Mehlmauer            android:pivotY="50%"
553f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main            android:duration="400" />
554f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        &lt;rotate
555218284528bfeebe829633c6977d5fbbbfd144fcfChristian Mehlmauer            android:fromDegrees="0"
556f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main            android:toDegrees="-45"
557218284528bfeebe829633c6977d5fbbbfd144fcfChristian Mehlmauer            android:toYScale="0.0"
558218284528bfeebe829633c6977d5fbbbfd144fcfChristian Mehlmauer            android:pivotX="50%"
559f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main            android:pivotY="50%"
560f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main            android:duration="400" />
561f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    &lt;/set>
562f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main&lt;/set>
563f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</pre>
564f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <p>This application code will apply the animation to an {@link android.widget.ImageView} and
565f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainstart the animation:</p>
566f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<pre>
567f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott MainImageView image = (ImageView) findViewById(R.id.image);
568f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott MainAnimation hyperspaceJump = AnimationUtils.{@link android.view.animation.AnimationUtils#loadAnimation(Context,int) loadAnimation}(this, R.anim.hyperspace_jump);
569f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainimage.{@link android.view.View#startAnimation(Animation) startAnimation}(hyperspaceJump);
570f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</pre>
571f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</dd> <!-- end example -->
572f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
573f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
574f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dt>see also:</dt>
575f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dd>
576f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<ul>
5774d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly  <li><a href="{@docRoot}guide/topics/graphics/view-animation.html#tween-animation">2D
578f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott MainGraphics: Tween Animation</a></li>
579f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</ul>
580f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</dd>
581f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
582f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</dl>
583f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
5844d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<h4 id="Interpolators">Interpolators</h4>
585f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
586f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<p>An interpolator is an animation modifier defined in XML that affects the rate of change in an
587f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainanimation. This allows your existing animation effects to be accelerated, decelerated, repeated,
588f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainbounced, etc.</p>
589f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
590f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<p>An interpolator is applied to an animation element with the {@code android:interpolator}
591f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainattribute, the value of which is a reference to an interpolator resource.</p>
592f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
593f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<p>All interpolators available in Android are subclasses of the {@link
594f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainandroid.view.animation.Interpolator} class. For each interpolator class, Android
595f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainincludes a public resource you can reference in order to apply the interpolator to an animation
59676dfc02135abae5337b48fe99a1b8c0a7d95e33akmccormickusing the {@code android:interpolator} attribute.
597f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott MainThe following table specifies the resource to use for each interpolator:</p>
598f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
599f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<table>
600f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <tr><th>Interpolator class</th><th>Resource ID</th></tr>
601f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <tr>
602f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <td>{@link android.view.animation.AccelerateDecelerateInterpolator}</td>
603f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <td>{@code @android:anim/accelerate_decelerate_interpolator}</td>
604f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  </tr>
605f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <tr>
606f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <td>{@link android.view.animation.AccelerateInterpolator}</td>
607f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <td>{@code @android:anim/accelerate_interpolator}</td>
608f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  </tr>
609f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <tr>
610f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <td>{@link android.view.animation.AnticipateInterpolator}</td>
611f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <td>{@code @android:anim/anticipate_interpolator}</td>
612f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  </tr>
613f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <tr>
614f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <td>{@link android.view.animation.AnticipateOvershootInterpolator}</td>
615f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <td>{@code @android:anim/anticipate_overshoot_interpolator}</td>
616f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  </tr>
617f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <tr>
618f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <td>{@link android.view.animation.BounceInterpolator}</td>
619f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <td>{@code @android:anim/bounce_interpolator}</td>
620f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  </tr>
621f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <tr>
622f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <td>{@link android.view.animation.CycleInterpolator}</td>
623f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <td>{@code @android:anim/cycle_interpolator}</td>
624f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  </tr>
625f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <tr>
626f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <td>{@link android.view.animation.DecelerateInterpolator}</td>
627f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <td>{@code @android:anim/decelerate_interpolator}</td>
628f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  </tr>
629f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <tr>
630f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <td>{@link android.view.animation.LinearInterpolator}</td>
631f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <td>{@code @android:anim/linear_interpolator}</td>
632f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  </tr>
633f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <tr>
634f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <td>{@link android.view.animation.OvershootInterpolator}</td>
635f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <td>{@code @android:anim/overshoot_interpolator}</td>
636f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  </tr>
637f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</table>
638f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
639f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<p>Here's how you can apply one of these with the {@code android:interpolator} attribute:</p>
640f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<pre>
641f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main&lt;set android:interpolator="@android:anim/accelerate_interpolator"&gt;
642f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    ...
643f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main&lt;/set&gt;
644f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</pre>
645f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
646f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
647f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<h4>Custom interpolators</h4>
648f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
649f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<p>If you're not satisfied with the interpolators provided by the platform (listed in the
650f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Maintable above), you can create a custom interpolator resource with modified attributes.
651f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott MainFor example, you can adjust the rate of
652f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainacceleration for the {@link android.view.animation.AnticipateInterpolator}, or adjust the number of
653f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Maincycles for the {@link android.view.animation.CycleInterpolator}. In order to do so, you need to
654f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Maincreate your own interpolator resource in an XML file.
655f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</p>
656f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
657f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dl class="xml">
658f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
659f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dt>file location:</dt>
660f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dd><code>res/anim/<em>filename</em>.xml</code><br/>
661f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott MainThe filename will be used as the resource ID.</dd>
662f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
663f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dt>compiled resource datatype:</dt>
664f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dd>Resource pointer to the corresponding interpolator object.</dd>
665f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
666f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dt>resource reference:</dt>
667f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dd>
668f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott MainIn XML: <code>@[<em>package</em>:]anim/<em>filename</em></code>
669f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</dd>
670f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
671f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dt>syntax:</dt>
672f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dd>
673f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<pre class="stx">
674f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main&lt;?xml version="1.0" encoding="utf-8"?>
675f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main&lt;<em>InterpolatorName</em> xmlns:android="http://schemas.android.com/apk/res/android"
676f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    android:<em>attribute_name</em>="<em>value</em>"
677f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    />
678f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</pre>
679f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<p>If you don't apply any attributes, then your interpolator will function exactly the same as
680f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainthose provided by the platform (listed in the table above).</p>
681f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</dd>
682f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
683f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dt>elements:</dt>
684f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dd>Notice that each {@link android.view.animation.Interpolator} implementation, when
685f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Maindefined in XML, begins its name in lowercase.</p>
686f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
687f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dl class="tag-list">
688f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <dt><code>&lt;accelerateDecelerateInterpolator&gt;</code></dt>
689f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <dd>The rate of change starts and ends slowly but accelerates through the
690f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainmiddle. <p>No attributes.</p></dd>
691f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <dt><code>&lt;accelerateInterpolator&gt;</code></dt>
692f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <dd>The rate of change starts out slowly, then accelerates.
693f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <p class="caps">attributes:</p>
694f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <dl class="atn-list">
695f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dt><code>android:factor</code></dt>
696f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dd><em>Float</em>. The acceleration rate (default is 1).</dd>
697f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      </dl>
698f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    </dd>
699f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <dt><code>&lt;anticipateInterpolator&gt;</code></dt>
700f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <dd>The change starts backward then flings forward.
701f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <p class="caps">attributes:</p>
702f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <dl class="atn-list">
703f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dt><code>android:tension</code></dt>
704f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dd><em>Float</em>. The amount of tension to apply (default is 2).</dd>
705f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      </dl>
706f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    </dd>
707f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <dt><code>&lt;anticipateOvershootInterpolator&gt;</code></dt>
708f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <dd>The change starts backward, flings forward and overshoots the target value, then
709f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainsettles at the final value.
710f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <p class="caps">attributes:</p>
711f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <dl class="atn-list">
712f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dt><code>android:tension</code></dt>
713f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dd><em>Float</em>. The amount of tension to apply (default is 2).</dd>
714f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dt><code>android:extraTension</code></dt>
715f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dd><em>Float</em>. The amount by which to multiply the tension (default is
716f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main          1.5).</dd>
717f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      </dl>
718f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    </dd>
719f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <dt><code>&lt;bounceInterpolator&gt;</code></dt>
720f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <dd>The change bounces at the end. <p>No attributes</p></dd>
721f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <dt><code>&lt;cycleInterpolator&gt;</code></dt>
722f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <dd>Repeats the animation for a specified number of cycles. The rate of change follows a
723f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainsinusoidal pattern.
724f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <p class="caps">attributes:</p>
725f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <dl class="atn-list">
726f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dt><code>android:cycles</code></dt>
727f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dd><em>Integer</em>. The number of cycles (default is 1).</dd>
728f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      </dl>
729f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    </dd>
730f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <dt><code>&lt;decelerateInterpolator&gt;</code></dt>
731f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <dd>The rate of change starts out quickly, then decelerates.
732f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <p class="caps">attributes:</p>
733f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <dl class="atn-list">
734f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dt><code>android:factor</code></dt>
735f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dd><em>Float</em>. The deceleration rate (default is 1).</dd>
736f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      </dl>
737f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    </dd>
738f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <dt><code>&lt;linearInterpolator&gt;</code></dt>
739f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <dd>The rate of change is constant. <p>No attributes.</p></dd>
740f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <dt><code>&lt;overshootInterpolator&gt;</code></dt>
741f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <dd>The change flings forward and overshoots the last value, then comes back.
742f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <p class="caps">attributes:</p>
743f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <dl class="atn-list">
744f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dt><code>android:tension</code></dt>
745f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        <dd><em>Float</em>. The amount of tension to apply (default is 2).</dd>
746f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      </dl>
747f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    </dd>
748f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</dl>
749f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
750f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dt>example:</dt>
751f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dd>
752f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <p>XML file saved at <code>res/anim/my_overshoot_interpolator.xml</code>:</p>
753f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<pre>
754f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main&lt;?xml version="1.0" encoding="utf-8"?>
755f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main&lt;overshootInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
756f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    android:tension="7.0"
757f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    />
758f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</pre>
759f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <p>This animation XML will apply the interpolator:</p>
760f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<pre>
761f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main&lt;scale xmlns:android="http://schemas.android.com/apk/res/android"
762f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    android:interpolator="@anim/my_overshoot_interpolator"
763f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    android:fromXScale="1.0"
764f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    android:toXScale="3.0"
765f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    android:fromYScale="1.0"
766f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    android:toYScale="3.0"
767f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    android:pivotX="50%"
768f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    android:pivotY="50%"
769f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    android:duration="700" />
770f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</pre>
771f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</dd>
772f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</dl>
773f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
774f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
7754d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<h3 id="Frame">Frame animation</h3>
776f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
777f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<p>An animation defined in XML that shows a sequence of images in order (like a film).
778f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</p>
779f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
780f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
781f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dl class="xml">
782f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
783f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dt>file location:</dt>
784f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dd><code>res/drawable/<em>filename</em>.xml</code><br/>
785f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott MainThe filename will be used as the resource ID.</dd>
786f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
787f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dt>compiled resource datatype:</dt>
788f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dd>Resource pointer to an {@link android.graphics.drawable.AnimationDrawable}.</dd>
789f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
790f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dt>resource reference:</dt>
791f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dd>
792f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott MainIn Java: <code>R.drawable.<em>filename</em></code><br/>
793f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott MainIn XML: <code>@[<em>package</em>:]drawable.<em>filename</em></code>
794f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</dd>
795f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
796f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dt>syntax:</dt>
797f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dd>
798f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<pre class="stx">
799f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main&lt;?xml version="1.0" encoding="utf-8"?>
800f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main&lt;<a href="#animation-list-element">animation-list</a> xmlns:android="http://schemas.android.com/apk/res/android"
801f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    android:oneshot=["true" | "false"] >
802f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    &lt;<a href="#item-element">item</a>
803f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        android:drawable="@[package:]drawable/<em>drawable_resource_name</em>"
804f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main        android:duration="<em>integer</em>" />
805f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main&lt;/animation-list>
806f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</pre>
807f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</dd>
808f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
809f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dt>elements:</dt>
810f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dd>
811f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dl class="tag-list">
812f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dt id="animation-list-element"><code>&lt;animation-list&gt;</code></dt>
813f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <dd><strong>Required</strong>. This must be the root element. Contains one or more
814f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<code>&lt;item&gt;</code> elements.
815f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <p class="caps">attributes:</p>
816f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <dl class="atn-list">
817f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <dt><code>android:oneshot</code></dt>
818f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <dd><em>Boolean</em>. "true" if you want to perform the animation once; "false" to loop the
819f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Mainanimation.</dd>
820f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    </dl>
821f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  </dd>
822f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dt id="item-element"><code>&lt;item&gt;</code></dt>
823f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <dd>A single frame of animation. Must be a child of a <code>&lt;animation-list&gt;</code> element.
824f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <p class="caps">attributes:</p>
825f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <dl class="atn-list">
826f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <dt><code>android:drawable</code></dt>
827f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <dd><em>Drawable resource</em>. The drawable to use for this frame.</dd>
828f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <dt><code>android:duration</code></dt>
829f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      <dd><em>Integer</em>. The duration to show this frame, in milliseconds.</dd>
830f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    </dl>
831f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  </dd>
832f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</dl>
833f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</dd> <!-- end  elements and attributes -->
834f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
835f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dt>example:</dt>
836f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<dd>
837f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  <dl>
838f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <dt>XML file saved at <code>res/anim/rocket.xml</code>:</dt>
839f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <dd>
840f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<pre>
841f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main&lt;?xml version="1.0" encoding="utf-8"?>
842f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main&lt;animation-list xmlns:android="http://schemas.android.com/apk/res/android"
843f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    android:oneshot="false">
844f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    &lt;item android:drawable="@drawable/rocket_thrust1" android:duration="200" />
845f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    &lt;item android:drawable="@drawable/rocket_thrust2" android:duration="200" />
846f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    &lt;item android:drawable="@drawable/rocket_thrust3" android:duration="200" />
847f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main&lt;/animation-list>
848f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</pre>
849f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    </dd>
850f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
851f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <dt>This application code will set the animation as the background for a View,
852f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main      then play the animation:</dt>
853f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    <dd>
854f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<pre>
855f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott MainImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
856f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott MainrocketImage.{@link android.view.View#setBackgroundResource(int) setBackgroundResource}(R.drawable.rocket_thrust);
857f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
858f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott MainrocketAnimation = (AnimationDrawable) rocketImage.{@link android.view.View#getBackground()};
859f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott MainrocketAnimation.{@link android.graphics.drawable.AnimationDrawable#start()};
860f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</pre>
861f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main    </dd>
862f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
863f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main  </dl>
864f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</dd> <!-- end example -->
865f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main
8664d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<dt>see also:</dt>
8674d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<dd>
8684d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<ul>
8694d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly  <li><a href="{@docRoot}guide/topics/graphics/view-animation.html#frame-animation">2D
8704d1824206bc223bb18ad063826ddade6c7a31ac1Robert LyGraphics: Frame Animation</a></li>
8714d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly</ul>
8724d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly</dd>
873f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</dl>
874