메뉴 건너뛰기

XEDITION

ANDROID

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

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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

■ 지난번에는 투명애니메이션에 대해서 알아봤었는데요. [투명애니메이션] ◀

 

이번에는  두번째로 객체의 위치를 평면상에서 움직이는 "translate Animation" 대해서 알아보도록 하겠습니다.

 

 

 

 

■ 이번에 만들어볼 프로젝트에서는 중앙에 있던 로고가 오른쪽 아래쪽으로 일정한 시간동안 이동하도록 구현해 보도록 하겠습니다. 

 

 

 

 

 

 

■ 먼저 이번 예제에서 사용할 'mark'라는 이름의 이미지를 준비해서  drawable 폴더에 넣고, res 폴더에 anim 폴더를 만들겠습니다. 이 anim폴더에는 애니메이션 xml 파일을 작성해서 넣을건데요. 

 

 

안드로이드에서는 "anim" 폴더에 애니메이션에 관한 파일이 있어야 자동으로 인식을 하게 됩니다.

 

 

 

 

 

 

 

 

■ anim 폴더에 넣을 애니메이션 파일인 ani.xml 파일을 만들어 보도록 하겠습니다.

 

 

 

 

■ 그림처럼 anim폴더를 선택한 상태에서 [New ▶ AndroXML File]을 선택하면 다음과 같은 창이 나타나게 되는데요. 이동 애니메이션을 작성하기 위해서 "translate"를 선택하고, 파일 이름을 입력하고 Finish를 선택합니다. 

 

 

 

 

 

 

 

 

 ■ Finish버튼을 클릭하면 다음과 같이 태그가 자동으로 완성되서 파일이 생성이 됩니다.

 

 

 

 

 

 

■ translate Animation 효과를 줄 수 있는 내용을 작성하도록 하겠습니다.

 

 

파일 내용을 살펴보면 "fromXDelta"는 X축의 시작점이고 " toXDelta"는 X축의 끝점입니다. 즉, 파일 내용은 x축으로 이미지 객체 크기의 "100%"만큼 , Y축으로는 "50%" 만큼 이동한다는 의미입니다. 오른쪽(X) 아래쪽(Y)으로 대각선 방향으로 움직이게 될것입니다.  "startOffset"은 프로젝트가 시작되고 나서 Animation 이 실행되는 시간입니다. 프로젝트가 실행되면 2초후에 애니메이션이 시작을 할것입니다. duration은 4초동에 걸쳐서 실행이 된다는 의미인데요. 숫자를 바꿔가면서 실행을 해보면 이해가 더 빠를것입니다. 

 

 

 

 

 

 

 

■ 다음은 activity_main.xml  파일을 먼저 살펴보겠습니다.

 

 

객체를 중앙에 위치하도록 gravity를 "center"로 하고, 배경을 하늘색 느낌이 나는 색으로 설정하고, 이미지뷰를 하나 배치해서 준비한 이미지를 넣어주고 있습니다.

 

 

 

 

 

■ 이제 액티비티 파일을 작성하겠습니다.

 

 

activity_main.xml에서 배치했던 이미지뷰를 찾아서 'image'라는 객체에 담고, 애니메이션 효과는 AnimationUtils() 메서드를 이용해서 위에서 작성했던 ani 파일을 이 클래스(this)에 호출하고 'animation'이라는 객체에 담고, startAnimation()메서드를 이용해서 실행을 시키고 있는 내용입니다.

 

 

 

 

 

■ 이 프로젝트를 실행을 해보면 다음과 같이 2초 후에 4초 동안에 걸쳐서 이미지가 오른쪽 아래쪽 대각선 방향으로 이동을 하게 됩니다. 

 

 

 

 

 

 

■ 위쪽에서 XML파일을 만들때 그림을 보면 안드로이드 애니메이션 유형은 alpha(투명), rotate(회전), scale(크기), 이동(translate), 혼합(set) 등 다섯가지기 있는것을 확인할 수 있습니다. 투명과 이동에 대해서는 알아봤으니 나머지는 다음 포스팅에 이어서 계속 하도록 하겠습니다.  

 

출처 http://kd3302.tistory.com/97

?

List of Articles
번호 제목 글쓴이 날짜 조회 수
64 [슈팅 게임 만들기] 11. 강좌가 늦어져 예제로 대신합니다 엘리후 2017.06.01 93
63 안드로이드 게임 만들기 SpriteAnimation 엘리후 2016.02.29 672
» [안드로이드 어플 개발] 이동 애니메이션 (Translate Animation) 엘리후 2015.12.24 373
61 Multipart를 이용하여 파일+문자열 한꺼번에 전송하기 엘리후 2015.12.01 3140
60 How do I upload large files (10MB) in Android? 엘리후 2015.11.26 925
59 Upload Video from android to server? 엘리후 2015.11.26 266
58 안드로이드] Fragment 쉽게 사용하기 엘리후 2015.11.24 386
57 안드로이드(android) 다이얼로그(dialog) 종류별 구현 방법 엘리후 2015.11.11 431
56 ActionBar에 메뉴 넣기. 엘리후 2015.11.11 188
55 앱 통계를 내 사이트에서 수집하기 엘리후 2015.10.07 827
54 나인패치 (9patch) 이미지 만드는 방법 엘리후 2015.10.07 350
53 VOLLEY 라이브러리 엘리후 2015.10.02 539
52 안드로이드 나인패치 이미지 만들기 [나인패치 영역선택 및 수정] 엘리후 2015.09.25 879
51 안드로이드 Support Library Setup 엘리후 2015.09.25 444
50 안드로이드 Multipart 업로드 예제 엘리후 2015.09.23 8811
49 이클립스/Eclipse 메모리 Heap 영역 늘리기 엘리후 2015.09.13 263
48 [Android, Hybrid]openFileChooser 킷캣에서 동작하지 않는 문제( openFileChooser Kitkat bug ) 엘리후 2015.08.27 605
47 Android – WebView에서 input태그를 통한 파일 업로드하기 엘리후 2015.08.27 3627
46 WebView 컨트롤 엘리후 2015.08.27 445
45 안드로이드 동영상 파일 업로드 예제 엘리후 2015.08.25 1181
44 안드로이드 채팅 ui 만들기 관련 리스트뷰(ListView)의 layout_weight 옵션을 이용한 채팅 GUI 구현, 카카오 채팅 말풍선 엘리후 2015.08.21 27790
43 Android 간단한 로그인, 회원 가입 폼 만들기 for Mac (PHPMyAdmin 이용) 엘리후 2015.08.21 1962
42 안드로이드 프레임워크 프로그래밍 [시스템서비스 추가하기] 엘리후 2015.08.11 156
41 안드로이드에서 실행 시 발생하는 에러 엘리후 2015.08.10 164
40 안드로이드 ; 스크롤 뷰 엘리후 2015.08.09 1840
39 android Facebook SDK 3.0 로그인 및 포스팅 엘리후 2015.08.07 479
38 [android] 안드로이드 전역 변수 사용하기 android global variable 엘리후 2015.07.30 645
37 [Android] WebView를 사용할때 HttpClient를 이용한 Session 유지 엘리후 2015.07.29 5567
36 [MY_SQL] where절과 having절의 차이 엘리후 2015.07.27 246
35 [안드로이드 개발 강좌] 데이터베이스(DataBase) - DB 생성,저장,수정,삭제 엘리후 2015.07.21 939
Board Pagination Prev 1 2 3 Next
/ 3
위로