国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android精靈動畫用法實例

2020-04-11 11:29:50
字體:
來源:轉載
供稿:網友

本文實例講述了Android精靈動畫用法。分享給大家供大家參考。具體如下:

ElaineAnimated.java文件如下:

package net.obviam.walking.model;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.Rect;public class ElaineAnimated {  private static final String TAG = ElaineAnimated.class.getSimpleName();  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) {    this.bitmap = bitmap;    this.x = x;    this.y = y;    currentFrame = 0;    frameNr = frameCount;    spriteWidth = bitmap.getWidth() / frameCount;    spriteHeight = bitmap.getHeight();    sourceRect = new Rect(0, 0, spriteWidth, spriteHeight);    framePeriod = 1000 / fps;    frameTicker = 0l;  }  public Bitmap getBitmap() {    return bitmap;  }  public void setBitmap(Bitmap bitmap) {    this.bitmap = bitmap;  }  public Rect getSourceRect() {    return sourceRect;  }  public void setSourceRect(Rect sourceRect) {    this.sourceRect = sourceRect;  }  public int getFrameNr() {    return frameNr;  }  public void setFrameNr(int frameNr) {    this.frameNr = frameNr;  }  public int getCurrentFrame() {    return currentFrame;  }  public void setCurrentFrame(int currentFrame) {    this.currentFrame = currentFrame;  }  public int getFramePeriod() {    return framePeriod;  }  public void setFramePeriod(int framePeriod) {    this.framePeriod = framePeriod;  }  public int getSpriteWidth() {    return spriteWidth;  }  public void setSpriteWidth(int spriteWidth) {    this.spriteWidth = spriteWidth;  }  public int getSpriteHeight() {    return spriteHeight;  }  public void setSpriteHeight(int spriteHeight) {    this.spriteHeight = spriteHeight;  }  public int getX() {    return x;  }  public void setX(int x) {    this.x = x;  }  public int getY() {    return y;  }  public void setY(int y) {    this.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    this.sourceRect.left = currentFrame * spriteWidth;    this.sourceRect.right = this.sourceRect.left + 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);    canvas.drawBitmap(bitmap, sourceRect, destRect, null);    canvas.drawBitmap(bitmap, 20, 150, null);    Paint paint = new Paint();    paint.setARGB(50, 0, 255, 0);    canvas.drawRect(20 + (currentFrame * destRect.width()), 150, 20 + (currentFrame * destRect.width()) + destRect.width(), 150 + destRect.height(), paint);  }}

希望本文所述對大家的Android程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 马关县| 紫阳县| 四川省| 始兴县| 元谋县| 延津县| 天门市| 平罗县| 辽阳县| 华阴市| 澳门| 惠安县| 黄梅县| 永安市| 东明县| 安远县| 沈阳市| 和田市| 大冶市| 临邑县| 浮山县| 揭阳市| 临汾市| 孝感市| 宁波市| 临清市| 清镇市| 大兴区| 浦江县| 怀化市| 汕尾市| 石渠县| 高要市| 海晏县| 师宗县| 友谊县| 龙陵县| 富蕴县| 积石山| 平谷区| 侯马市|