Publicado por: luizfbarbosa | setembro 24, 2011

Android Animando imagem como gif animado

Bem o android não suporta gif animando, então como fazer uma imagem animada?
Temos algumas opções, e dentre elas a mais simples é utilizar a classe AnimationDrawable .

Para ver como isto funciona, você irá precisar extrair as imagens do gif animado, você pode utilizar o GifSplit

Vamos por a mão na massa:

No exemplo foram utilizados 7 imagens e foi criado o arquivo de animation_android.xml:

<animation-list xmlns:android="http://schemas.android.com/apk/res/android" 
id="animacao" android:oneshot="false" >
<item android:drawable="@drawable/android1" android:duration="150" />
<item android:drawable="@drawable/android2" android:duration="150" />
<item android:drawable="@drawable/android3" android:duration="150" />
<item android:drawable="@drawable/android4" android:duration="150" />
<item android:drawable="@drawable/android5" android:duration="150" />
<item android:drawable="@drawable/android6" android:duration="150" />
<item android:drawable="@drawable/android7" android:duration="150" />
</animation-list>

Crie um arquivo main.xml, da seguinte forma:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" android:layout_width="fill_parent"
	android:layout_height="fill_parent" android:background="#ffffff">
	<ImageView android:layout_height="wrap_content"
		android:layout_width="wrap_content" android:id="@+id/imgAndroid"
		android:background="@drawable/android1"
		android:layout_gravity="center_horizontal" />
</LinearLayout>

E agora crie a classe Main.java e digite o código abaixo para fazer a animação rodar.

package br.poc.imagemanimation;

import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.widget.ImageView;

public class Main extends Activity {
	private ImageView imgAndroid;
	private AnimationDrawable mAnimation;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        imgAndroid = (ImageView)findViewById(R.id.imgAndroid);
        imgAndroid.setBackgroundResource(R.drawable.android_animation);    
       
        
    }
    
    public void onWindowFocusChanged(boolean hasFocus) {
    	 mAnimation = (AnimationDrawable)imgAndroid.getBackground();
        if (hasFocus) {
        	mAnimation.start();
        } else {
        	mAnimation.stop();
        }
    }

    
    @Override
    protected void onResume() {
    	// TODO Auto-generated method stub
    	super.onResume();    	 
    }
    
    @Override
	protected void onPause() {
		super.onPause();
		mAnimation.stop();
	}

}

Se você quiser baixar o código fonte clique aqui:ImagemAnimation.rar


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Categorias

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

%d blogueiros gostam disto: