안드로이드 개발 질문/답변
(글 수 45,052)
제가 한개의 이미지 파일을 준비해서
렉트로 한장면씩 돌아 가면서 에니메이션이 되게 클래스를 만들었습니다...
위와 같이 클래스를 짜서 에니메이션을 돌리고 있는데요... 그냥 에니메이션을 돌릴수 있는 함수 같은게 있는건가요??
그리고 저 상황에서 회전을 시켜 볼려구 하는데 canvas.rotate(회전각도, 회전축x, 회전축y ); 를 사용하니 회전축이라는게 참 애매모호하고
제가 원하는 회전 방향이 나오지가 않더라구요.. 그리고 에니메이션을 돌릴려고 해도 모르겠고... ㅠ ㅠ
메트릭스를 사용하니깐 canvas.drawBitmap을 사용않하고 ImageView 를 사용하고 ㅠ ㅠ 아고 속시원한 해답좀 ㅠㅠ
렉트로 한장면씩 돌아 가면서 에니메이션이 되게 클래스를 만들었습니다...
C:\Users\김대현\Desktop\JAVA\workspace\Evolution\src\hyun\kr에니메이션
Animation(Rect imageposition,int i, int j){ /// 간단하게 설명해 드리자면 에니매이션 클래스에서 비트맵 파일을 읽어 배열속에 넣는부분 cellnumX = i; cellnumY = j; ImagePosition = new Rect[cellnumX][cellnumY]; for(int cellcountY = 0; cellcountY < cellnumY; cellcountY++ ){ for(int cellcountX = 0; cellcountX < cellnumX; cellcountX++){ ImagePosition[cellcountX][cellcountY] = new Rect(); } } for(int cellcountY = 0; cellcountY < cellnumY; cellcountY++ ){ for(int cellcountX = 0; cellcountX < cellnumX; cellcountX++){ ImagePosition[cellcountX][cellcountY].left = (int) (cellcountX * imageposition.right); ImagePosition[cellcountX][cellcountY].top = (int)(cellcountY * imageposition.bottom); ImagePosition[cellcountX][cellcountY].right = (int)((cellcountX+1) * imageposition.right); ImagePosition[cellcountX][cellcountY].bottom = (int)((cellcountY+1) * imageposition.bottom); } } } public void AniDraw(Canvas canvas, Bitmap bitmap,int time, int dir, Rect screenposion, float matrix){// 배열속에 있는 그림을 하나씩 불러서 그리는 장면 SetTimer(time,dir); // 타이머는 제가 만들었음 ScreenPosition = screenposion; canvas.drawBitmap(b2, ImagePosition[playX][playY], ScreenPosition, null); }
위와 같이 클래스를 짜서 에니메이션을 돌리고 있는데요... 그냥 에니메이션을 돌릴수 있는 함수 같은게 있는건가요??
그리고 저 상황에서 회전을 시켜 볼려구 하는데 canvas.rotate(회전각도, 회전축x, 회전축y ); 를 사용하니 회전축이라는게 참 애매모호하고
제가 원하는 회전 방향이 나오지가 않더라구요.. 그리고 에니메이션을 돌릴려고 해도 모르겠고... ㅠ ㅠ
메트릭스를 사용하니깐 canvas.drawBitmap을 사용않하고 ImageView 를 사용하고 ㅠ ㅠ 아고 속시원한 해답좀 ㅠㅠ
Matrix mat = new Matrix();
mat.postRotate(90);
Bitmap resize;
resize = Bitmap.createBitmap(Test, 0, 0, 64, 64, mat, true);
canvas.drawBitmap(resize,null, new Rect(100, 100,100+64, 100+64), null);