반응형
출처 : http://kangshef.egloos.com/5387699
xml을 열어 버튼을 생성해 줍니다.
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_heigth="wrap_content"
android:text="움직여요"
/>
이렇게 xml에 중간에 넣어주면 버튼이 생성이 됩니다.
움직여요 라는 버튼이 말이죠
이번엔 자바로 와서 onCreate 안에 버튼 뷰를 등록해 줍니다.
Button button = (Button)findViewById(R.id.button);
그리고 바로 온클릭 리스너를 등록합니다.
button.setOnClickListener (new View.OnClickListener(){
public void onClick(View v){
Intent i = new Intent(this.class, nextActivity.class);
startActivity(i);
}
}
이렇게 말이죠
여기서 this의 값은 현재의 클래스를 뜻하구요
nextActivity는 아직 생성을 하지 않았습니다.
자 step2 입니다.
nextActivity 클래스를 만들어 보겠습니다.
같은 패키지안에 nextActivity라는 클래스를 생성하시고
layout안에 main2라는 xml파일을 생성하시기 바랍니다.
nextActivity안에서
onCreate아나에 setContentView(R.layout.main2);
setContentView 안의 값을 R.layout.main2로 바꿔주신후에
main2.xml의 내용을 입맛에 맞게 바꾸시면 됩니다.
(text를 넣어 확인해 보는것도 괜찮겠죠 ^^ 하지만 여기선 액티비티 전환에 대해서만 알아봅니다.)
이제 준비가 끝났냐구요?
아직입니다.!
이대로 실행하면 100프로 에러가 뜨고 강제종료가 됩니다. 이유는 Mainfest에 있죠
AndroidManifest를 열어 <activity android:name=".nextActivity"/>
라고 추가를 해 줍니다.
정말 준비가 끝났죠
에뮬레이터를 실행해 보면 버튼 클릭시 다음 액티비티로 전환 되는 것을 잘 알 수 있습니다.
하지만...
하지만... 두구둥..
저희가 알아보려 했던건 그게 아니었죠? ^^
바로 이 화면 전환시의 효과에 대해 알아보려는 것입니다.
일단 따라해 보세요 !
res 폴더에 anim이라는 폴더를 생성합니다.
이는 애니메이션 관련 파일을 넣는 폴더입니다.
그 폴더안에
fade.xml
hold.xml
zoom_enter.xml
zoom_exit.xml
을 생성합니다.
fade.xml 부터 살펴보죠
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="@android:integer/config_longAnimTime" />
이런 값을 추가 해 줍니다.
딱 보니 알파값을 조정하는 것 같죠 ?
hold.xml엔
<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" />
zoom_enter.xml엔
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator">
<scale android:fromXScale="2.0" android:toXScale="1.0"
android:fromYScale="2.0" android:toYScale="1.0"
android:pivotX="50%p" android:pivotY="50%p"
android:duration="@android:integer/config_mediumAnimTime" />
</set>
zoom_exit.xml엔
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator"
android:zAdjustment="top">
<scale android:fromXScale="1.0" android:toXScale=".5"
android:fromYScale="1.0" android:toYScale=".5"
android:pivotX="50%p" android:pivotY="50%p"
android:duration="@android:integer/config_mediumAnimTime" />
<alpha android:fromAlpha="1.0" android:toAlpha="0"
android:duration="@android:integer/config_mediumAnimTime"/>
</set>
이런 값을 넣어줍니다.
이제 다-----시 처음의 자바파일로 돌아옵니다.
자바파일에 보면 온클릭 리스너를 선언했던 것이 보이실 겁니다.
그 안에 (onClick(View v){ 안에)
overridePendingTransition(R.anim.fade, R.anim.hold);
값을 넣어 줍니다.
그리고 실행을 해보시면???
띠용!
부드러운 화면전환이 보이시나요? ^^
다음입니다.
그걸 지우시고 이번엔
overridePendingTransition(R.anim.zoom_enter, R.anim.zoom_exit);
이라고 넣어보세요.
줌인 줌아웃되는 것이 보이시나요 ^^
마무리 입니다.
overridePendingTransition은 int값을 받습니다.
xml에서 생성해 R.java에 등록된 모든 것들은 주소값을 받고
저희는 그 주소값을 갖고 편하게 사용을 하면 되겠습니다.
반응형
'Android' 카테고리의 다른 글
버튼 누름 효과 (0) | 2013.01.25 |
---|---|
Splash 효과 (0) | 2013.01.16 |
윈도우에서 안드로이드 NDK 개발환경 설치 (0) | 2013.01.01 |
TCP/IP (0) | 2012.12.30 |
안드로이드 개발 팁 (0) | 2012.12.29 |