안드로이드(android) 앱이 실행되면서 스플래시(splash, 로딩) 화면을 띄우는 소스입니다.
여러가지 방법이 있겠지만 제가 사용하는 방법은 아래와 같습니다.
AndroidManifest.xml
SplashActivity“/>
MainActivity .java
public class MainActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
// 스플래시 화면 띄우기
startActivity(new Intent(this, SplashActivity.class));super.onCreate(savedInstanceState);
setContentView(R.layout.main);initialize(); // 시간이 걸리는 작업 처리
}/**
* 스플래시 표시하는 것과 초기화를 동시에 진행시키기 위하여 쓰레드 처리
*
*/
private void initialize()
{
InitializationRunnable init = new InitializationRunnable();
new Thread(init).start();
}/**
* 초기화 작업 처리
*
*/
class InitializationRunnable implements Runnable
{
public void run()
{
// 여기서부터 초기화 작업 처리
// do_something
}
}
}
<p>
<span style="background-color: rgb(201, 237, 255);">SplashActivity.java</span>
</p>
<blockquote>
<div style="padding: 10px; background-color: rgb(228, 228, 228);">
public class <span style="color: rgb(255, 153, 0);">SplashActivity</span> extends Activity<br />{<br /> @Override<br /> public void onCreate(Bundle savedInstanceState)<br /> {<br /> super.onCreate(savedInstanceState);<br /> setContentView(R.layout.splash);</p>
<p>
initialize();<br /> }
</p>
<p>
private void initialize()<br /> {<br /> Handler handler = new Handler()<br /> {<br /> @Override<br /> public void handleMessage(Message msg)<br /> {<br /> finish(); // 액티비티 종료<br /> }<br /> };
</p>
<p>
handler.sendEmptyMessageDelayed(0, <span style="color: rgb(255, 0, 0);">3000</span>); // ms, <span style="color: rgb(255, 0, 0);">3초후 종료</span>시킴<br /> }<br />}</div> </blockquote>
<p>
* 화면을 가로/세로 모드로 전환할 경우 스플래쉬 액티비티가 보이는 문제가 발생할 경우 대처<br />– 여러가지 방법이 있겠지만 아래처럼 처리하면 됩니다.(2010/10/27 추가)
</p>
<p>
<span style="background-color: rgb(201, 237, 255);">AndroidManifest.xml<br /></span>
</p>
<blockquote>
<div style="padding: 10px; background-color: rgb(228, 228, 228);">
<!– 메인 액티비티 –><br /><activity android:name=”MainActivity” android:label=”@string/app_name” <span style="color: rgb(255, 0, 0);">android:configChanges=”keyboardHidden|orientation”</span>><br /> <intent-filter><br /> <action android:name=”android.intent.action.MAIN” /><br /> <category android:name=”android.intent.category.LAUNCHER” /><br /> </intent-filter><br /></activity></p>
<p>
<!– 스플래시(로딩) 액티비티 –><br /><activity android:name=”<span style="color: rgb(255, 153, 0);">SplashActivity</span>“/></div> </blockquote>
<p>
예제 다운로드:<br /><a href="/wp-content/uploads/1/1080351452.zip" class="alignleft" />1080351452.zip</a>
</p>