Google Play에서 설치한 app을 쓰다보면 아무런 효과 없이 Activity가 전환되는 app들도 있지만, Activity 전환시 신규 Activity가 오른쪽에서 왼쪽으로 나타난다거나, 자연스럽게 fade in/out 된다거나 하는 app들이 있다.
자세한 구현 방법을 알기 전, 아무런 기반 지식이 없는 상태에서 생각하기론 flash를 사용하나라고 추측만 했었다. 아무래도 animation 효과를 code 상으로 구현한다고는 감이 오지 않았기 때문이다.
이 효과의 주인공은 다음과 같다.
public void overridePendingTransition (int enterAnim, int exitAnim) Added in API level 5 Call immediately after one of the flavors of As of Parameters
|
[출처 : developer.android.com]
overridePendingTransition 를 호출하면서 2개의 인자를 넘기게 되는데 첫번째 인자는 새로 불리는 Activity의 애니메이션 효과, 두번째 인자는 기본 Activity의 애니메이션 효과이다.
startActivity(intent);overridePendingTransition(R.anim.slide_left, R.anim.hold);
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2007 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"><translate android:fromXDelta="100%p" android:toXDelta="0"
android:duration="@android:integer/config_shortAnimTime" />
</set>
[hold]
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2009 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromXDelta="0" android:toXDelta="0"
android:duration="@android:integer/config_longAnimTime" />
각종 animation xml 들은 [Google Link] 에서 참고하면 될 것 같다.
'Android' 카테고리의 다른 글
Android - Back key 무시 (0) | 2016.01.20 |
---|---|
Android - 더블탭(double tap), 더블클릭, 더블터치 (0) | 2016.01.19 |
Android - TextView 그리고 EditText View 전환 (0) | 2016.01.19 |
Android - ListView 갱신 with CursorAdapter. (0) | 2016.01.18 |
Android - Application Class (0) | 2016.01.18 |
Android - Cursor (0) | 2016.01.15 |
Android - ListView, CursorAdapter 그리고 _id (0) | 2016.01.14 |
Android - SQLite 사용하기 (0) | 2016.01.12 |