티스토리 뷰
안드로에드에서 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 |