<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Animaci%C3%B3ns</id>
	<title>Animacións - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Animaci%C3%B3ns"/>
	<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Animaci%C3%B3ns&amp;action=history"/>
	<updated>2026-10-24T09:21:56Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://manuais.iessanclemente.net/index.php?title=Animaci%C3%B3ns&amp;diff=39262&amp;oldid=prev</id>
		<title>Carrion: /* O código Java */</title>
		<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Animaci%C3%B3ns&amp;diff=39262&amp;oldid=prev"/>
		<updated>2013-11-14T09:25:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;O código Java&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Introdución==&lt;br /&gt;
*Android ten 2 mecanismos para crear animacións&lt;br /&gt;
**&amp;#039;&amp;#039;&amp;#039;Animación de propiedades&amp;#039;&amp;#039;&amp;#039;: Crea unha animación modificando os valores das propiedades dos obxectos por un período de tempo.&lt;br /&gt;
&lt;br /&gt;
**&amp;#039;&amp;#039;&amp;#039;Animación de vistas&amp;#039;&amp;#039;&amp;#039;: que se divide en dous tipos:&lt;br /&gt;
***&amp;#039;&amp;#039;&amp;#039;Animacións Tween /Animation&amp;#039;&amp;#039;&amp;#039;&amp;#039;: Crea unha animación de rotación, traslación, zoom, trasnparencia (alpha) sobre calquera vista.&lt;br /&gt;
***&amp;#039;&amp;#039;&amp;#039;Animación Frame /AnimationDrawable&amp;#039;&amp;#039;&amp;#039;: crea unha animación amosando unha secuencia de imaxes. Crease un obxecto da clase: .  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Usaremos estes dous últimos tipos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Referencias:&lt;br /&gt;
**http://developer.android.com/guide/topics/resources/animation-resource.html&lt;br /&gt;
**http://developer.android.com/guide/topics/graphics/drawable-animation.html&lt;br /&gt;
**http://developer.android.com/reference/android/view/animation/Animation.html&lt;br /&gt;
**http://developer.android.com/reference/android/graphics/drawable/AnimationDrawable.html&lt;br /&gt;
&lt;br /&gt;
==Caso práctico==&lt;br /&gt;
*Comezamos creando unha actividade: &amp;#039;&amp;#039;&amp;#039;U3_30_Animacion&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*A imaxe amosa as animacións que se crearán:&lt;br /&gt;
[[Image:Android_2013_U3_30_Animacion_02.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Ao iniciar a aplicación, o fondo é branco e no espazo de tempo vaise tornando en vermello.&lt;br /&gt;
*A imaxe da terra xirando como secuencia das seguintes imaxes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;Frames da animación&amp;quot; widths=&amp;quot;100&amp;quot; heights=&amp;quot;100px&amp;quot; perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
Image:terra1.png| &lt;br /&gt;
Image:terra2.png| &lt;br /&gt;
Image:terra3.png| &lt;br /&gt;
Image:terra4.png| &lt;br /&gt;
Image:terra5.png| &lt;br /&gt;
Image:terra6.png| &lt;br /&gt;
Image:terra7.png| &lt;br /&gt;
Image:terra8.png| &lt;br /&gt;
Image:terra9.png| &lt;br /&gt;
Image:terra10.png| &lt;br /&gt;
Image:terra11.png| &lt;br /&gt;
Image:terra12.png| &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*No seguinte ficheiro pódense descargara as imaxes e colocalas en &amp;#039;&amp;#039;&amp;#039;/res/drawable&amp;#039;&amp;#039;&amp;#039; do proxecto.&lt;br /&gt;
[[Media:Drawable_terra.zip]]&lt;br /&gt;
&lt;br /&gt;
===O XML do Layout===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;6,17-21&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;LinearLayout xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&lt;br /&gt;
    xmlns:tools=&amp;quot;http://schemas.android.com/tools&amp;quot;&lt;br /&gt;
    android:id=&amp;quot;@+id/layout_terra&amp;quot;&lt;br /&gt;
    android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
    android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
    android:background=&amp;quot;#F00&amp;quot;&lt;br /&gt;
    android:gravity=&amp;quot;center&amp;quot;&lt;br /&gt;
    android:orientation=&amp;quot;vertical&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;TextView&lt;br /&gt;
        android:layout_width=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:text=&amp;quot;Animación&amp;quot;&lt;br /&gt;
        android:textColor=&amp;quot;#FFF&amp;quot;&lt;br /&gt;
        android:textSize=&amp;quot;22sp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;ImageView&lt;br /&gt;
        android:id=&amp;quot;@+id/imgvwTerra&amp;quot;&lt;br /&gt;
        android:layout_width=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:contentDescription=&amp;quot;Animación da terra&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Button&lt;br /&gt;
        android:layout_width=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:onClick=&amp;quot;onPararIniciarClick&amp;quot;&lt;br /&gt;
        android:text=&amp;quot;Parar / Iniciar&amp;quot;&lt;br /&gt;
        android:textColor=&amp;quot;#FFF&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/LinearLayout&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Liñas 17-21&amp;#039;&amp;#039;&amp;#039;: Vista onde se vai amosar a animación da terra&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Animación Tween===&lt;br /&gt;
*Unha animación Tween define os seus efectos: transicións, rotacións, fading, movemento, zoom sobre un gráfico nun ficheiro XML&lt;br /&gt;
&lt;br /&gt;
*Localización do ficheiro: &amp;#039;&amp;#039;&amp;#039;/res/anim/filename.xml&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*O nome do ficheiro será usado como ID do recurso.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Neste caso o recurso chámase:&amp;#039;&amp;#039;&amp;#039;/res/anim/animacion_aparece_fundido.xml&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;5-9&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;set xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&lt;br /&gt;
    android:shareInterpolator=&amp;quot;true&amp;quot;&lt;br /&gt;
     &amp;gt;&lt;br /&gt;
   &amp;lt;alpha &lt;br /&gt;
       android:fromAlpha=&amp;quot;0.0&amp;quot;&lt;br /&gt;
       android:toAlpha=&amp;quot;1.0&amp;quot;&lt;br /&gt;
       android:duration=&amp;quot;6000&amp;quot;&lt;br /&gt;
   /&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;/set&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Elementos do ficheiro:&lt;br /&gt;
**&amp;#039;&amp;#039;&amp;#039;set&amp;#039;&amp;#039;&amp;#039;: E un contedor para albergar outros elementos de animación (&amp;lt;alpha&amp;gt;, &amp;lt;scale&amp;gt;, &amp;lt;translate&amp;gt;, &amp;lt;rotate&amp;gt;)&lt;br /&gt;
**&amp;#039;&amp;#039;&amp;#039;alpha&amp;#039;&amp;#039;&amp;#039;:Animación fade-in/fade-out (fundido). Usa a transparencia aplha para indicar dende que nivel de transparencia se parte e ata cal se chega e canto tempo debe durar o proceso.&lt;br /&gt;
**No noso caso partimos dunha transparencia total (0.0) a unha opacidade total (1.0). O proceso de fundido dura 6 segundos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Ao iniciar a aplicación o Layout aprece blanco (transparente) e vaise funndindo até chegar a vermello (Opaco) que é o color co que se definiu o Layout.&lt;br /&gt;
*Logo no código aplicarase a animación e cargarase.&lt;br /&gt;
&lt;br /&gt;
Para consultar máis elementos dunha animación Tween:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Referencias&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
**http://developer.android.com/guide/topics/resources/animation-resource.html#Tween&lt;br /&gt;
&lt;br /&gt;
===Animación frame===&lt;br /&gt;
*A animación defínese nun XML que amosa a secuencia de imaxes a amosar nunha orde (Como unha película)&lt;br /&gt;
*Localización do ficheiro:&amp;#039;&amp;#039;&amp;#039;/res/drawable/filename.xml&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*O nome do ficheiro será usado como ID do recurso.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Neste caso o ID do recurso é: &amp;#039;&amp;#039;&amp;#039;/res/drawable/animacion_terra.xml&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;3&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;animation-list xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot; &lt;br /&gt;
    android:oneshot=&amp;quot;false&amp;quot;&lt;br /&gt;
    &amp;gt;&lt;br /&gt;
    &amp;lt;item android:drawable=&amp;quot;@drawable/terra1&amp;quot; android:duration=&amp;quot;250&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;item android:drawable=&amp;quot;@drawable/terra2&amp;quot; android:duration=&amp;quot;250&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;item android:drawable=&amp;quot;@drawable/terra3&amp;quot; android:duration=&amp;quot;250&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;item android:drawable=&amp;quot;@drawable/terra4&amp;quot; android:duration=&amp;quot;250&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;item android:drawable=&amp;quot;@drawable/terra5&amp;quot; android:duration=&amp;quot;250&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;item android:drawable=&amp;quot;@drawable/terra6&amp;quot; android:duration=&amp;quot;250&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;item android:drawable=&amp;quot;@drawable/terra7&amp;quot; android:duration=&amp;quot;250&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;item android:drawable=&amp;quot;@drawable/terra8&amp;quot; android:duration=&amp;quot;250&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;item android:drawable=&amp;quot;@drawable/terra9&amp;quot; android:duration=&amp;quot;250&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;item android:drawable=&amp;quot;@drawable/terra10&amp;quot; android:duration=&amp;quot;250&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;item android:drawable=&amp;quot;@drawable/terra11&amp;quot; android:duration=&amp;quot;250&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;item android:drawable=&amp;quot;@drawable/terra12&amp;quot; android:duration=&amp;quot;250&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/animation-list&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Elementos:&lt;br /&gt;
**&amp;#039;&amp;#039;&amp;#039;&amp;lt;animation-list&amp;gt;&amp;#039;&amp;#039;&amp;#039;: é o elemento raíz e conten elementos &amp;lt;item&amp;gt;&lt;br /&gt;
***&amp;#039;&amp;#039;&amp;#039;android:oneshot&amp;#039;&amp;#039;&amp;#039;: Booleano. &amp;quot;true&amp;quot; para realizar a animación unha soa vez; &amp;quot;false&amp;quot; para estar nun bucle infinito.&lt;br /&gt;
**&amp;#039;&amp;#039;&amp;#039;&amp;lt;item&amp;gt;&amp;#039;&amp;#039;&amp;#039;: Indica a secuencia de imaxe a cargar e a duración en milisegundos.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Referencias&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
**http://developer.android.com/guide/topics/resources/animation-resource.html#Frame&lt;br /&gt;
&lt;br /&gt;
*A animación será cargada no código.&lt;br /&gt;
&lt;br /&gt;
===O código Java===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;13,19,23-26,29-34,40&amp;quot; &amp;gt;&lt;br /&gt;
package com.example.u3_30_animacion;&lt;br /&gt;
&lt;br /&gt;
import android.app.Activity;&lt;br /&gt;
import android.graphics.drawable.AnimationDrawable;&lt;br /&gt;
import android.os.Bundle;&lt;br /&gt;
import android.view.Menu;&lt;br /&gt;
import android.view.View;&lt;br /&gt;
import android.view.animation.Animation;&lt;br /&gt;
import android.view.animation.AnimationUtils;&lt;br /&gt;
import android.widget.ImageView;&lt;br /&gt;
&lt;br /&gt;
public class U3_30_Animacion extends Activity {&lt;br /&gt;
	AnimationDrawable ad;&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	protected void onCreate(Bundle savedInstanceState) {&lt;br /&gt;
		super.onCreate(savedInstanceState);&lt;br /&gt;
		setContentView(R.layout.activity_u3_30__animacion);&lt;br /&gt;
		cargarAnimacions();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	private void cargarAnimacions() {&lt;br /&gt;
                //Tweek&lt;br /&gt;
		View pai = (View) findViewById(R.id.layout_terra);&lt;br /&gt;
		Animation fundido = AnimationUtils.loadAnimation(this, R.anim.animacion_aparece_fundido);&lt;br /&gt;
		pai.startAnimation(fundido);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                //Frame&lt;br /&gt;
		ImageView img = (ImageView) findViewById(R.id.imgvwTerra);&lt;br /&gt;
		img.setBackgroundResource(R.drawable.animacion_terra);&lt;br /&gt;
&lt;br /&gt;
		ad = (AnimationDrawable) img.getBackground();&lt;br /&gt;
		ad.start();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void onPararIniciarClick(View v) {&lt;br /&gt;
		if (ad.isRunning())&lt;br /&gt;
			ad.stop();&lt;br /&gt;
		else&lt;br /&gt;
			ad.start();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	public boolean onCreateOptionsMenu(Menu menu) {&lt;br /&gt;
		// Inflate the menu; this adds items to the action bar if it is present.&lt;br /&gt;
		getMenuInflater().inflate(R.menu.u3_30__animacion, menu);&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Liñas 23-26&amp;#039;&amp;#039;&amp;#039;: Cargamos os efectos da animación e aplicamos ese efecto (fundido) ao Layout.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Liñas 29-34&amp;#039;&amp;#039;&amp;#039;: Cargamos a animación na vista ImageView (img) da activity e iniciamos a animación&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Liña 40&amp;#039;&amp;#039;&amp;#039;:Controlar se a animación esta ou non en marcha.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; -- [[Usuario:angelfg|Ángel D. Fernández González]] e [[Usuario:Carrion|Carlos Carrión Álvarez]] -- (2013).&lt;/div&gt;</summary>
		<author><name>Carrion</name></author>
	</entry>
</feed>