CQM
CQM

Reputation: 44228

Android transition animation

I want an animated gif, since this isn't possible in Android I am using individual frames in a transition.

except it seems like the transition class only will show two frames ever! I saw other animation methods but they didn't seem to apply to what I was doing, or seemed old and convulated like for an older infant android build

<transition xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:drawable="@drawable/activateanima"></item>
  <item android:drawable="@drawable/activateanimb"></item>
  <item android:drawable="@drawable/activateanimc"></item>
  <item android:drawable="@drawable/activateanimc"></item>
  <item android:drawable="@drawable/activateanimd"></item>
  <item android:drawable="@drawable/activateanime"></item>
  <item android:drawable="@drawable/activateanimf"></item>
  <item android:drawable="@drawable/activateanimg"></item>
</transition>

How do I animate an image to behave like an animated gif, in place. no rotations or translations here. Using android 2.1+

Upvotes: 0

Views: 2385

Answers (2)

Kurru
Kurru

Reputation: 14331

Just use a view flipper to flip between the images. Just define your in and out animations to be 0seconds long and they should be instantianous. (but use alpha to be sure). View flipper has the benefit of also auto animating and auto starting

Upvotes: 1

Ricky
Ricky

Reputation: 7889

Are you after a Frame animation? See: here. This will play a standing still animation.

Example from above site:

XML file saved at res/anim/rocket.xml:

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false">
    <item android:drawable="@drawable/rocket_thrust1" android:duration="200" />
    <item android:drawable="@drawable/rocket_thrust2" android:duration="200" />
    <item android:drawable="@drawable/rocket_thrust3" android:duration="200" />
</animation-list>

To use:

ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
rocketImage.setBackgroundResource(R.drawable.rocket_thrust);

rocketAnimation = (AnimationDrawable) rocketImage.getBackground();
rocketAnimation.start();

Upvotes: 4

Related Questions