메뉴 건너뛰기

조회 수 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
번호 제목 날짜 조회 수
117 사용자 정의 팝업창 띄우기 2015.07.16 6337
116 HTML5 Form 공부하기 -2- file 2014.09.04 6329
115 WebView 줌 컨트롤러 가리기 2014.08.28 6316
114 HTML5로 나만의 비디오 플레이어 스킨 만들기 -2- JavaScript file 2014.09.04 6312
113 전화 인텐트와 나의 전화 번호가져오기 2014.08.28 6312
112 HTML5로 나만의 비디오 플레이어 스킨 만들기 -3- JavaScript file 2014.09.04 6288
111 푸쉬 알림 기능. GCM (Google Cloud Messaging) 사용하기 (3) file 2015.07.16 6267
110 Effects - Stop() 메서드 (애니메이션 효과 멈추기) file 2014.10.16 6225
109 클래스나눠서 xml 파싱과 FTP를이용하여 안드로이드에서 활용하기 2014.08.28 6180
108 네트워크를 통해 받은 이미지를 파일로 저장하고, 크기 조절해서 불러오기 2015.07.16 6155
107 Effects - FadeIn() / FadeOut() 메서드 (서서히 보이기 및 숨기기) file 2014.10.16 6069
106 HTML5로 게임 만들기 워밍업 file 2014.09.04 6063
105 Effects - SlideUp() 메서드 (슬라이드업) file 2014.10.16 5999
» 안드로이드 이미지 효율적으로 회전 해보기 2014.08.28 5995
103 Effects - Show() / Hide() 메서드 (보이기 및 숨기기) file 2014.10.16 5957
102 HTML5 Better semantic tags file 2014.09.04 5952
101 HTML5 Form 공부하기 -1- file 2014.09.04 5841
100 Events - Unbind() 메서드 (이벤트 처리기 해제) file 2014.10.16 5749
99 HTML5 시작하기 file 2014.09.04 5660
98 HTML5 Web Storage -01- file 2014.09.04 5587
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 10 11 12 13 Next
/ 13

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved