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.