이번 포시팅은 앱의 로딩 화면을 몇초 동안 띄우고 그 후에 앱을 사용할 수 있는 것이다.
예를 들면 아래와 같이 국민앱인 카카오톡과 같이 카톡을 처음 실행하면 아래 이미지가 로딩된 후 카톡을 사용할 수 있다.
로딩의 장점이라면 로딩하는 시간동안 앱의 기본 설정을 셋팅 할 수 있고, 홍보(?) 효과도 있는것 같다.
자 이제 소스를 보자
레이아웃은 다른 activity 레이아웃과 같이 로딩하고 싶은 이미지로된 레이아웃을 하나 만든다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
public class SplashActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
Handler hd = new Handler();
hd.postDelayed( new splashhandler() , 3000 );
}
private class splashhandler implements Runnable{
public void run() {
startActivity( new Intent(getApplication(), MainActivity. class ));
SplashActivity. this .finish();
}
}
}
|
별로 어렵지 않은 소스다. 끄읏~
Splash.class 작성
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
public class Splash extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
Handler hd = new Handler();
hd.postDelayed(new Runnable() {
@Override
public void run() {
finish(); // 3 초후 이미지를 닫아버림
}
}, 3000);
}
}
MainActivity.class
setContentView(R.layout.main);
// 위 소스 아래부분에 splash.class 호출
startActivity(new Intent(this,Splash.class));
3초가 로딩 후 메인화면 뿌려짐
AndroidManifest.xml
기존 activity 태그 위에 아래 태그 삽입
<activity android:name=".Splash" android:theme="@android:style/Theme.NoTitleBar" />
res > layout 폴더 아래
splash.xml 추가
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/ic_launcher">
</RelativeLayout>
끝~~