ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [안드로이드] 로딩 화면 및 애니메이션 구현 하기
    기록./2015 2013. 5. 2. 19:09
    반응형

    안드로이드 책을 옆에 끼고 처음부터 차근차근 보는 것보단, 무엇이라도 만들어 보는 것이 좋다 생각했다.

    어느정도 알고는 있지만 깊게 알지는 못하는 나-_-a


    로딩 화면 구현도 여기저기 찾아 보고 이를 바탕으로 작성 해보았다. (대부분 로딩 화면 구현과 비슷할 듯 하다)


    1. 로딩 화면 구현 하기

    MainActivity


    public class MainActivity extends Activity {

        private Handler mHandler;


        @Override

        protected void onCreate(Bundle savedInstanceState) {

            startActivity(new Intent(this, SplashActivity.class)); //SplashActivity적어줍니다. SplashActivity실행

            super.onCreate(savedInstanceState);

            setContentView(R.layout.act_main); //Main레이아웃 

            initialize(); // 적어도 되고 안적어도 됩니다. 이 경우 스레드 작업을 위한 함수입니다.

        }

       

        // Splash화면이 뜨는 동안 다른 작업을 할 수 있도록 처리 하는 방법입니다. 

        // 해당 출처 http://isulnara.com/tt/227

        private void initialize(){

              InitializationRunnable init = new InitializationRunnable();

              new Thread(init).start();

        } 
    }


    SplashActivity


    public class SplashActivity extends Activity {

       protected void onCreate(Bundle savedInstanceState) {

           super.onCreate(savedInstanceState);

           setContentView(R.layout.act_splash); //splash이미지 레이아웃 

           

           Handler handler = new Handler() {

            @Override

            public void handleMessage(Message msg) {        

            finish(); //현재 액티비티 즉 SplashActivity 종료

           

                                    //페이드 인 페이드 아웃 효과 res/anim/fadein, fadeout xml을 만들어 줘야 합니다.

            overridePendingTransition(R.anim.fadein, R.anim.fadeout);

            }

           };

           handler.sendEmptyMessageDelayed(0,2000); //2000 시간 설정 1000->1초

       }  

     public void onBackPressed(){} //splash 이미지 띄우는 과정에 백 버튼을 누를 수도 있다. 백버튼 막기

    }



    [요약]

    음 그러니깐 MainActivity 자체에서 먼저 SplashActivity를 호출하고 2초 뒤에 이 SplashActivity가 사라지면서 MainActivity가 보이는 듯 하다. (Activity는 차곡차곡 쌓이는[?])


    MainActivity 시작 -> SplashActivity -> SplashActivity 2초뒤 종료 -> MainActivity


    2. 애니메이션 추가

    fadein.xml

    <?xml version="1.0" encoding="utf-8"?>

    <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="300" />


    fadeout.xml

    <?xml version="1.0" encoding="utf-8"?>

    <alpha xmlns:android="http://schemas.android.com/apk/res/android"

    android:interpolator="@android:anim/accelerate_interpolator"

    android:fromAlpha="1.0"

    android:toAlpha="0.0"

    android:duration="300" />


    res폴더에 anim폴더를 만들어 그 밑에 작성 하면 된다.


    [결과]

    Splash화면 뜨고 페이드 인 아웃~ 되면서 MainActivity가 자연스럽게 나온다!



















    반응형

    댓글

Designed by Tistory.