[안드로이드] 로딩 화면 구현 하기
안드로이드 책을 옆에 끼고 처음부터 차근차근 보는 것보단, 무엇이라도 만들어 보는 것이 좋다 생각했다.
어느정도 알고는 있지만 깊게 알지는 못하는 나-_-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가 자연스럽게 나온다!
끝
댓글
댓글 쓰기