안드로이드에서 Sprite Animation을 구현하는 예, Part 01
쓰레드를 이용하여 스프라이트 시트로부터 프레임 이미지 영역의 좌료를 계산하는 예는 여기를 참조하세요
사용된 스프라이트 시트
MainActivity.java
package test.android; import android.app.*; import android.content.*; import android.graphics.*; import android.os.*; import android.util.*; import android.view.*; import android.view.*; import android.view.View.*; import android.widget.*; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); MyView my = new MyView(this); setContentView(my); } /* spritesheet.png (1440x1480), 5행6열 */ public class MyView extends View { int frameWidth; int frameHeight; Bitmap spriteSheet = BitmapFactory.decodeResource(getResources(), R.drawable.spritesheet); Bitmap backBuffer; Canvas offScreen = new Canvas(); public MyView(Context context) { super(context); frameWidth = spriteSheet.getWidth()/6; frameHeight = spriteSheet.getHeight()/5; backBuffer = Bitmap.createBitmap(spriteSheet, 0, 0, frameWidth, frameHeight); offScreen.setBitmap(backBuffer); Rect src = new Rect(0,0,frameWidth, frameHeight); Rect dst = new Rect(0,0,frameWidth, frameHeight); offScreen.drawBitmap(spriteSheet, src, dst, null); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawBitmap(backBuffer,0f,0f,null); } } }