메뉴 건너뛰기

조회 수 5995 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

안드로이드에서 이미지를 회전하는 방법은 여러가지가 있다. 

 

하지만, 네이버에서 나온 대부분의 방법은 

 

imgBoss2=BitmapFactory.decodeResource(.....);

 

imgBoss2=Bitmap.createScaledBitmap(....);


이것을 사용하는데,, 이것은 휴대폰으로 하여금 새로운 객체를 생성하기때문에 부담을 줄 수 밖에 없다. 

 

그래서 이미지 파일을 새로 만드는 것이 아닌 구성요소인 Matrix를 새로 리셋하여 

회전시키고 그것을 나중에 적용하는 방법에 대해서 알아 본다. 

 

그래픽스 시스템에 대해서 기본적으로 배우면 Matrix가 왜 회전과 이동에 관여 하는지 알 수 있다. 

 

궁금하신분은 컴퓨터 그래픽스 Matrix 에서 Transformation 파트를 찾아 보도록 한다. 

 

나는 아래의 소스는 게임을 만드는 소스중 같은이미지가 360도 돌아가면서 이동하는 것이다. 

 

코드가 너무 길어서 정리해서 써놓으면 

 

Matrix matrix = new Matrix();

.....으로 위에서 메트릭스를 선언하고 

루프 혹은 자신이 새로 설정하고 싶은 부분에서 매트릭스를 리셋시켜준다. 

 

matrix.reset();


//안드로이드는 좌상단부터 그림이 시작된다. 하지만 회전은 가운데를 기준으로 돌아가게되므로, 
//좌상단을 이용하여 그림의 가운데 지점을 찾아 내는 로직이다. 
centerX=(2*x+width)/2;

centerY=(2*y+height)/2;

 

//이것은 필요하신분만 사용하도록 하자 이것은 특정위치로 이미지를 이동시킨다. 

//다시말하지만 이것또한 좌상단부터 아래와 오른쪽으로 그림을 그리게 된다. 

matrix.setTranslate(x,y);

 

//이부분이 회전을 담당하는 부분이다. 매개변수는 처음부터 이미지, 그리고 x,y축만큼 회전이다. 

//아래와 같이하면 제자리에서 회전하게 된다. 

matrix.postRotate(imgRotate, centerX, centerY);

 

//그뒤에 그림을 그려주면 완성. 

canvas.drawBitmap(imgBoss, matrix, null);

 

 

 

 

안드로이드에서 이미지는 매우 민감하다. 휴대폰이 뜨거워지거나 렉이 걸릴 수 있기 때문이다.  

 

사진정도 가볍게 회전하는 것은 문제가 아니지만,, ,자주 회전해야 많은 이미지를 회전시켜야한다면

 

위와 같은 방법으로 메트릭스를 사용해야 할 것 이다. 


List of Articles
번호 제목 날짜 조회 수
17 트리뷰(TreeView) 컨트롤 file 2014.10.16 6722
16 특정 폴더에서 오래된 파일 삭제하기 2015.07.16 6768
15 패키지명을 한꺼번에 변경하기 (Refactor) file 2020.12.14 295
14 폰갭 비콘 디텍팅 안될 때 (기본적인건 다 되있어야됨) 2015.07.26 6529
13 폰갭(PhoneGap) & jQuery Mobile 로 안드로이드 어플 개발 file 2015.06.29 7839
12 폰갭(PhoneGap) 에서 페이지들간의 이동 2015.06.29 8475
11 폰갭(PhoneGap) 플러그인 만들기 2015.06.29 8458
10 폰갭(PhoneGap) 플러그인 사용하기 2015.06.29 7370
9 푸쉬 알림 기능. GCM (Google Cloud Messaging) 사용하기 (1) file 2015.07.16 6726
8 푸쉬 알림 기능. GCM (Google Cloud Messaging) 사용하기 (2) file 2015.07.16 7292
7 푸쉬 알림 기능. GCM (Google Cloud Messaging) 사용하기 (3) file 2015.07.16 6267
6 푸시 서비스(GCM)에 대해 알아보자 file 2015.07.01 7000
5 하이브리드 앱에서의 세션관리(로그인 상태 유지) 2018.12.27 5017
4 하이브리드앱 기본 - WebView로 웹페이지 띄우기 file 2020.12.14 1025
3 화면 전환해도 데이터 유지 예제 2015.07.26 9204
2 화면 해상도에 관계없는 레이아웃(Layout) 만들기 file 2015.07.16 8641
1 화면 회전에 따른 애니메이션 효과 구현하기 2015.07.16 8055
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 11 12 13 Next
/ 13

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved