SoFunction
Updated on 2025-03-11

Android elves animation usage example

This article describes the usage of Android elves animations. Share it for your reference. The details are as follows:

The file is as follows:

package ;
import ;
import ;
import ;
import ;
public class ElaineAnimated {
  private static final String TAG = ();
  private Bitmap bitmap;
  // the animation sequence
  private Rect sourceRect;
  // the rectangle to be drawn from the animation bitmap
  private int frameNr;
  // number of frames in animation
  private int currentFrame;
  // the current frame
  private long frameTicker;
  // the time of the last frame update
  private int framePeriod;
  // milliseconds between each frame (1000/fps)
  private int spriteWidth;
  // the width of the sprite to calculate the cut out rectangle
  private int spriteHeight;
  // the height of the sprite
  private int x;
  // the X coordinate of the object (top left of the image)
  private int y;
  // the Y coordinate of the object (top left of the image)
  public ElaineAnimated(Bitmap bitmap, int x, int y, int width, int height, int fps, int frameCount) {
     = bitmap;
     = x;
     = y;
    currentFrame = 0;
    frameNr = frameCount;
    spriteWidth = () / frameCount;
    spriteHeight = ();
    sourceRect = new Rect(0, 0, spriteWidth, spriteHeight);
    framePeriod = 1000 / fps;
    frameTicker = 0l;
  }
  public Bitmap getBitmap() {
    return bitmap;
  }
  public void setBitmap(Bitmap bitmap) {
     = bitmap;
  }
  public Rect getSourceRect() {
    return sourceRect;
  }
  public void setSourceRect(Rect sourceRect) {
     = sourceRect;
  }
  public int getFrameNr() {
    return frameNr;
  }
  public void setFrameNr(int frameNr) {
     = frameNr;
  }
  public int getCurrentFrame() {
    return currentFrame;
  }
  public void setCurrentFrame(int currentFrame) {
     = currentFrame;
  }
  public int getFramePeriod() {
    return framePeriod;
  }
  public void setFramePeriod(int framePeriod) {
     = framePeriod;
  }
  public int getSpriteWidth() {
    return spriteWidth;
  }
  public void setSpriteWidth(int spriteWidth) {
     = spriteWidth;
  }
  public int getSpriteHeight() {
    return spriteHeight;
  }
  public void setSpriteHeight(int spriteHeight) {
     = spriteHeight;
  }
  public int getX() {
    return x;
  }
  public void setX(int x) {
     = x;
  }
  public int getY() {
    return y;
  }
  public void setY(int y) {
     = y;
  }
  // the update method for Elaine
  public void update(long gameTime) {
    if (gameTime > frameTicker + framePeriod) {
      frameTicker = gameTime;
      // increment the frame
      currentFrame++;
      if (currentFrame >= frameNr) {
        currentFrame = 0;
      }
    }
    // define the rectangle to cut out sprite
     = currentFrame * spriteWidth;
     =  + spriteWidth;
  }
  // the draw method which draws the corresponding frame
  public void draw(Canvas canvas) {
    // where to draw the sprite
    Rect destRect = new Rect(getX(), getY(), getX() + spriteWidth, getY() + spriteHeight);
    (bitmap, sourceRect, destRect, null);
    (bitmap, 20, 150, null);
    Paint paint = new Paint();
    (50, 0, 255, 0);
    (20 + (currentFrame * ()), 150, 20 + (currentFrame * ()) + (), 150 + (), paint);
  }
}

I hope this article will be helpful to everyone's Android programming design.