티스토리 뷰

안드로에드에서 startActivity(Intent type)를 통해 액티비티를 전환하게 되면, 깜빡임과 함께 다른 액티비티로 전환된다.


하지만 액티비티를 전환할 때 애니메이션 효과를 주면 깜빡임 효과없이 액티비티가 개발자가 원하는 방향에서 나타날 수 있게 할 수 있다.



방법은 Activity클래스에서 overridePendingTransition(int showAnim, int hideAnim) 메서드를 호출하면 된다.

1
2
3
4
5
6
7
8
9
10
//overridePendingTransition(int showAnim, int hideAnim);
 

//다른 액티비티 호출 시
startActivity(intent);
overridePendingTransition(R.anim.rightin_activity,R.anim.not_move_activity);
 
//현재 액티비티 종료 시
finish();
overridePendingTransition(R.anim.not_move_activity,R.anim.rightout_activity);
cs

각각 startActivity()와 finish()다음에 overridePendingTransition(int showAnim, int hideAnim)메서드를 위치하면 된다.


overridePendingTransition의 메서드 파라미터 매개변수의 첫번 째에는 나타날 액티비티가 취해야할 애니메이션 리소스를 지정하면 되고, 두번째 파라미터에는 현재 액티비티가 취해야할 애니메이션 리소스를 지정하면 된다.


+ 소스에서의 애니메이션 리소스 파일 설명 

not_move_activity : 움직이지 않고 액티비티 화면에 딱 맞게 있는 애니메이션

rightin_activity : 오른쪽에서 나타나는 애니메이션

rightout_activity : 오른쪽으로 사라지는 애니메이션



애니메이션 리소스 파일을 설정한다.

리소스파일은 res폴더 - anim폴더 하위에 만든다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!-- not_move_activity.xml -->
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="0" android:toXDelta="0" android:duration="300"/>    
</set>
 
 
<!-- rightin_activity.xml -->
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="300"/>
</set>
 
 
<!-- rightout_activity.xml -->
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="0" android:toXDelta="100%p" android:duration="300"/>
</set>
cs

3개의 리소스 파일의 내용이다.

여기에서 <translate>엘리먼트의 속성인 fromXDelta는 액티비티의 X축에서 처음에 나타날 위치를 지정하는 것이고, toXDelta는 fromXDelta로 부터 이동해서 멈출 X축의 위치를 지정하면 된다. duration은 애니메이션 효과가 보여질 시간을 지정하면 된다(밀리초이기 때문에 1000이 1초).


rightin_activity.xml을 보면 X축의 애니메이션 시작위치인 100%p(스마트폰 화면의 오른쪽 끝) 에서  X축의 애니메이션 종료 위치인 0(스마트폰 화면의 왼쪽 끝)을 지정하고 있다.

위치의 기준점은 액티비티의 왼쪽 모서리가 된다.

그러므로 오른쪽 화면의 모서리로부터 왼쪽 모서리까지 애니메이션을 수행하는 설정임을 알 수 있다. 

'Android > 정리' 카테고리의 다른 글

안드로이드 Thread 그리고 Handler  (0) 2016.09.25
Bitmap 객체  (0) 2016.09.21
그리기 객체  (0) 2016.09.19
안드로이드에서 서블릿을 호출하여 MySQL 질의 결과 가져오기  (0) 2016.09.08
리스트 뷰 (ListView)  (0) 2016.09.07
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
more
Total
Today
Yesterday