글 수 18
Android에서 스프라이트 이미지를 활용하는데 있어서 여러 가지 방법이 있다.
첫번째 방법>>
Bitmap 객체로 이미지를 decode 한다음 Bitmap클래스의 createBitmap(Bitmap source, int x, int y, int width, int height) 메소드를 이용하여
원하는 부분을 잘라낸 후, BitmapDrawable을 통해 Drawable로 전환하고나서 Drawable의 메소드 중 .draw(Canvas)를 이용하여
해당 Canvas에 이미지(Drawable)를 그릴 수가 있다.
Player_Bitmap= BitmapFactory.decodeResource(mRes, mPlayer.Img_id);
Base_Left=new BitmapDrawable(Bitmap.createBitmap(Player_Bitmap, 0,0 ,45,50));
Base_Right=new BitmapDrawable(Bitmap.createBitmap(Player_Bitmap, mPlayer.getX()+1,0 ,mPlayer.getWidth()*2,mPlayer.getHeight()));
두 번째 방법>>
Drawable로 전환하지 않을 경우, Canvas클래스의 drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint) 메소드을 이용하여
Bitmap 형태의 이미지를 원하는 부분만 그려줄 수가 있다.
여기서 src는 bitmap 객체 중에서 그려질 부분의 Source Rect이고, dst는 Canvas 상에서 그려질 위치와 크기에 대한 Destination Rect이다.
Player_Bitmap= BitmapFactory.decodeResource(mRes, mPlayer.Img_id);
Rect rPlayer=new Rect(mPlayer.getX(), mPlayer.getY(), mPlayer.getX()+mPlayer.getWidth(), mPlayer.getY()+mPlayer.getHeight());
c.drawBitmap(BitmapFactory.decodeResource(mRes, mPlayer.Img_id), mPlayer.getStateImgRect(), mPlayer.getPlayerForRect(), null);
