[안드로이드] 애니메이션 효과를 이용한 페이지 슬라이딩
<페이지 슬라이딩>
* 실습 - 애니메이션 효과를 이용하여 페이지 슬라이딩
1. 애니메이션을 위한 디렉토리와 파일 생성
- /res/anim 디렉토리 생성
- Animation Resource File 생성
2. 애니메이션이 정의되는 XML 파일 작성
(1) pull_in_left.xml
<?xml version="1.0" encoding="utf-8"?>
android:duration="3000"
android:fromYDelta="-100%"
android:toYDelta="0%"
android:interpolator="@android:anim/decelerate_interpolator"/>
(2) pull_in_right.xml
<?xml version="1.0" encoding="utf-8"?>
android:duration="3000"
android:fromXDelta="100%"
android:toXDelta="0%"
android:interpolator="@android:anim/decelerate_interpolator" />
(3) push_out_left.xml
<?xml version="1.0" encoding="utf-8"?>
android:duration="3000"
android:fromXDelta="0%"
android:toXDelta="-100%"
android:interpolator="@android:anim/decelerate_interpolator" />
(4) push_out_right.xml
<?xml version="1.0" encoding="utf-8"?>
android:duration="3000"
android:fromYDelta="0%"
android:toYDelta="100%"
android:interpolator="@android:anim/decelerate_interpolator"/>
3. 기존 액티비티에서 새로운 액티비티 시작(IntentDemo.java, IntentDemo2.java)
: startActivity() 호출 후, overridePendingTransition(incoming 액티비티, outgoing 액티비티) 메소드 추가
package com.example.chae.finaltest;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
public class IntentDemo extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_intentdemo);
}
//nextBtn 눌렸을 때 실행되는 메소드
public void nextBtnClicked(View v){
//명시적으로 인텐트 객체 생성
Intent intent = new Intent(IntentDemo.this, IntentDemo2.class);
startActivity(intent); //액티비티 활성화
overridePendingTransition(R.anim.pull_in_left, R.anim.push_out_right);
}
}
package com.example.chae.finaltest;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
public class IntentDemo2 extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_secondintent);
}
public void backBtnClicked(View v){
Intent intent = new Intent(IntentDemo2.this, IntentDemo.class);
startActivity(intent);
overridePendingTransition(R.anim.pull_in_right, R.anim.push_out_left);
}
}
'안드로이드 > 레이아웃(Layout)' 카테고리의 다른 글
[Android] 안드로이드 - 그리드 레이아웃(GridLayout) (0) | 2021.11.30 |
---|---|
[Android] 안드로이드 - 프레임레이아웃 (FrameLayout) (0) | 2021.11.30 |
[Android] 안드로이드 - 랠러티브 레이아웃(Relative Layout) (0) | 2021.11.30 |
[Android] 안드로이드 - 리니어 레이아웃 (Linear Layout) (0) | 2021.11.30 |
[안드로이드] Timepicker(타임피커), Datepicker(데이트피커) 예제 (0) | 2018.01.17 |
[Android] Strings.xml에서 개행하기 (0) | 2018.01.17 |
[Android] 안드로이드 액션바 색상/디자인 변경하기(Action Bar Color Change/Action Bar Customize) (0) | 2018.01.17 |
안드로이드 상단 회색(그레이) 색상 타이틀바 없애기 또는 레이블 넣기 (0) | 2018.01.17 |