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<<a href="#animator-set-element">set</a> 704d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly android:ordering=["together" | "sequentially"]> 714d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly 724d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly <<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"]/> 814d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly 824d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly <<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"]/> 904d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly 914d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly <<a href="#animator-set-element">set</a>> 924d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly ... 934d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly </set> 944d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly</set> 954d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly</pre> 964d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly 974d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<p>The file must have a single root element: either 984d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<code><set></code>, <code><objectAnimator></code>, or <code><valueAnimator></code>. You can 994d1824206bc223bb18ad063826ddade6c7a31ac1Robert Lygroup animation elements together inside the <code><set></code> element, including other 1004d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly<code><set></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><set></code></dt> 1084d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly <dd>A container that holds other animation elements (<code><objectAnimator></code>, 1094d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly <code><valueAnimator></code>, or other <code><set></code> elements). Represents 1104d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly an {@link android.animation.AnimatorSet}. 1114d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly <p>You can specify nested <code><set></code> tags to further 1124d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly group animations together. Each <code><set></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><objectAnimator></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><animator></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<set android:ordering="sequentially"> 3004d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly <set> 3014d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly <objectAnimator 3024d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly android:propertyName="x" 3034d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly android:duration="500" 3044d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly android:valueTo="400" 3054d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly android:valueType="intType"/> 3064d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly <objectAnimator 3074d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly android:propertyName="y" 3084d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly android:duration="500" 3094d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly android:valueTo="300" 3104d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly android:valueType="intType"/> 3114d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly </set> 3124d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly <objectAnimator 3134d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly android:propertyName="alpha" 3144d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly android:duration="500" 3154d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly android:valueTo="1f"/> 3164d1824206bc223bb18ad063826ddade6c7a31ac1Robert Ly</set> 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<?xml version="1.0" encoding="utf-8"?> 374f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<<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"] > 377f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main <<a href="#alpha-element">alpha</a> 378f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main android:fromAlpha="<em>float</em>" 379f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main android:toAlpha="<em>float</em>" /> 380f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main <<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>" /> 387f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main <<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>" /> 392f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main <<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>" /> 397f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main <<a href="#set-element">set</a>> 398f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main ... 399f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main </set> 400f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</set> 401f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</pre> 402f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main 403f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<p>The file must have a single root element: either an 404f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<code><alpha></code>, <code><scale></code>, <code><translate></code>, 405f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<code><rotate></code>, or <code><set></code> element that holds 406f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Maina group (or groups) of other animation elements (even nested <code><set></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><set></code></dt> 414f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main <dd>A container that holds other animation elements 415f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main(<code><alpha></code>, <code><scale></code>, <code><translate></code>, 416f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<code><rotate></code>) or other <code><set></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><alpha></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><alpha></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><scale></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><scale></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><translate></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><translate></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><rotate></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><rotate></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<set xmlns:android="http://schemas.android.com/apk/res/android" 532f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main android:shareInterpolator="false"> 533f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main <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 <set 544f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main android:interpolator="@android:anim/accelerate_interpolator" 545f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main android:startOffset="700"> 546f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main <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 <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 </set> 562f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</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<set android:interpolator="@android:anim/accelerate_interpolator"> 642f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main ... 643f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</set> 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<?xml version="1.0" encoding="utf-8"?> 675f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<<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><accelerateDecelerateInterpolator></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><accelerateInterpolator></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><anticipateInterpolator></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><anticipateOvershootInterpolator></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><bounceInterpolator></code></dt> 720f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main <dd>The change bounces at the end. <p>No attributes</p></dd> 721f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main <dt><code><cycleInterpolator></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><decelerateInterpolator></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><linearInterpolator></code></dt> 739f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main <dd>The rate of change is constant. <p>No attributes.</p></dd> 740f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main <dt><code><overshootInterpolator></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<?xml version="1.0" encoding="utf-8"?> 755f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<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<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<?xml version="1.0" encoding="utf-8"?> 800f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<<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 <<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</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><animation-list></code></dt> 813f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main <dd><strong>Required</strong>. This must be the root element. Contains one or more 814f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<code><item></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><item></code></dt> 823f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main <dd>A single frame of animation. Must be a child of a <code><animation-list></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<?xml version="1.0" encoding="utf-8"?> 842f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main<animation-list xmlns:android="http://schemas.android.com/apk/res/android" 843f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main android:oneshot="false"> 844f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main <item android:drawable="@drawable/rocket_thrust1" android:duration="200" /> 845f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main <item android:drawable="@drawable/rocket_thrust2" android:duration="200" /> 846f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main <item android:drawable="@drawable/rocket_thrust3" android:duration="200" /> 847f940a1f316ddbed760f6f3ab9a3e4f2112909381Scott Main</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