본문 바로가기
안드로이드 자바

[Android][JAVA]액티비티 Zoom In, Out 예제

by teamnova 2023. 5. 20.

안녕하세요 이번시간에는 액티비티가 화면에 보여질 때, Zoom In, Zoom Out 애니메이션을 적용해 보겠습니다.

 

새로운 액티비티가 생성될 때 onCreate에서 ovveridePendingTransition() 메서드를 구현 합니다.

 

이 메서드는 Activity 내의 메서드입니다. 인자 값으로는 다음과 같습니다.

* @param enterAnim 사용할 애니메이션 리소스의 리소스 ID : 유입 Activity. 애니메이션이 없는 경우 0을 사용합니다.
* @param exitAnim 사용할 애니메이션 리소스의 리소스 ID  : 출진 Activity. 애니메이션이 없는 경우 0을 사용합니다.

-> ovveridePendingTransition(enterAnim,exitAnim)

그 다음 res 폴더에 애니메이션으로 사용할  .xml 파일을 정의합니다.

 

fadain.xml

<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="500"
    android:fromAlpha="1.0"
    android:toAlpha="0.0"/>

fadaout.xml

<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="500"
    android:fromAlpha="0.0"
    android:toAlpha="1.0"/>

다음은 Activity 입니다.

 

MainActivity.java

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button=findViewById(R.id.bt);
        overridePendingTransition(R.anim.fadein, R.anim.fadeout);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(MainActivity.this,MainActivity2.class));
            }
        });
    }
}

MainActivity2.java

package com.example.fade_in_out_ex;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

public class MainActivity2 extends AppCompatActivity {
    String TAG=this.getClass().getSimpleName();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        Log.d(TAG, "onCreate: ");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        Button button=findViewById(R.id.bt);
        overridePendingTransition(R.anim.fadein, R.anim.fadeout);


        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(MainActivity2.this,MainActivity.class));
            }
        });
    }
}