Sei sulla pagina 1di 2

Nos cursos de Android da Caelum, comum encontrarmos alunos que queiram

incorporar efeitos visuais aplicao. Porm, essa necessidade mais visvel


ao se programar jogos, onde bastante comum o uso de animaes, seja dos
personagens ou do cenrio. Existem vrias tcnicas para se criar animaes,
dentre as quais est aquela que a mais antiga e intuitiva: a animao quadro
a quadro.

Ao criar uma animao quadro a quadro, colocamos uma


sequncia de imagens estticas que, ao serem exibidas numa certa velocidade
produz o efeito de movimento. Como o Android j possui suporte para vrios
tipos de animaes, vamos ver como criar uma animao quadro a quadro, que
chamamos no Android de Animation Drawable.
Primeiramente, vamos colocar o png das nossas imagens na
pasta res/drawable. nessa pasta que o Android vai procurar as imagens
usadas numa aplicao. Com os png na pasta, vamos dizer para o Android em
qual ordem e por quanto tempo as imagens devero ser exibidas na nossa
animao. Para isso, na pasta res/drawable vamos criar um xml
chamado animacao.xml e utilizar uma tag chamada animation-list:
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/imagem1" android:duration="100"/>
<item android:drawable="@drawable/imagem2" android:duration="100"/>
<item android:drawable="@drawable/imagem3" android:duration="100"/>
<item android:drawable="@drawable/imagem4" android:duration="100"/>
</animation-list>

Perceba que cada item dessa lista contm a imagem, que est na
pasta res/drawable, e a durao do tempo que essa imagem ser exibida. Alm
disso, o atributo android:oneshot diz se essa animao deve ficar
em loop infinito ou parar assim que o ltimo quadro for exibido. No nosso caso,
deixaremos em loop infinito ao setar esse atributo como false.
Nossa animao est pronta, agora precisamos atribu-la a um componente
de view da nossa aplicao.

Vamos criar um ImageView que conter nossa animao e cham-lo


de animacao com o uso do atributo android:id:

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/animacao"
/>
</LinearLayout>

Com esse ImageView criado, basta setar nosso xml de animao nele:
ImageView imageView = findViewById(R.id.animacao);
imageView.setBackgroundResource(R.drawable.animacao);
AnimationDrawable animation = (AnimationDrawable) imageView.getBackground();
animation.start();

Com isso, podemos ver nosso ImageView com uma animao.


Alm de animaes quadro a quadro, podemos alterar a posio de um
elemento de View dando a iluso de movimento. Para isso, podemos usar a
classe TranslateAnimation.
Vamos deslocar nossa ImageView para dar a iluso de movimento:
Animation deslocamento = new TranslateAnimation(0, 1000, 0, 0);
deslocamento.setDuration(3000);
imageView.startAnimation(deslocamento);

Note que o TranslateAnimation recebe quatro inteiros: eles significam,


respectivamente, as diferenas entre as posies iniciais e finais no eixo x e y.
No nosso caso, estamos fazendo um movimento horizontal (por isso os dois
ultimos valores so zeros) da esquerda para a direita comeando onde
o ImageView estiver posicionado (por isso, o primeiro valor zero), e indo at a
posio 1000 da minha tela.
Aps definir as posies do nosso movimento, podemos definir a sua durao
com o mtodosetDuration().
Alm do Animation Drawable, o Android oferece vrios outros tipos de
animaes que so bastante teis para jogos ou at mesmo para aplicativos
comuns.
E se quiser saber mais sobre o desenvolvimento Android e Mobile em geral no
deixe de visitar aMobileConf RJ 2014!

Potrebbero piacerti anche