1. 레이아웃 작성
res/layout/splash.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageView
android:id="@+id/spalsh_image"
android:layout_width = "wrap_content"
android:layout_height = "fill_parent"
android:layout_gravity="center"
android:scaleType="fitCenter"
android:src="@drawable/splash_image"
/>
<TextView ... />
</LinearLayout>
2. 엑티비티 구성 : 별거읍다.. 이미지 보이고, 원하는 시간 지난 후 다른 액티비티
호출해주면 끝.
private ImageView splash;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R,layout.splash);
splash = (ImageView) findViewById(R.id.splash);
Handle handle = new Handle();
handle.postDelayed( new Runnable() {
@Override
public void run() {
// start other activity
Intent main = new Intent(ThisActivity.this, NewActivity.class );
ThisActivity.this.startActivity(main);
ThisActivity.this.finish();
}
} , 1000 );
}
요러면 일단 이미지가 나왔다가 원하는 액티비티가 실행된다.
헌데, 당연 영~ 맘에 안들수도~
요기부터는 스플래시 화면을 좀 꾸벼보자는 의도~
3. 에니메이션 추가하기 : Animation 객체로 페이드인 기능을 넣어본다~
뷰 에니메이션이 추가되므로 리스너 등록.
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R,layout.splash);
Animation animation = new AlphaAnimation( 0.0f, 1.0f );
animation.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationEnd(Animation arg0) {
// TODO Auto-generated method stub
Handler handler = new Handler();
handler.postDelayed( new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
Intent intent = new Intent(SplashScreen.this, ???.class);
startActivity(intent);
SplashScreen.this.finish();
}
}, 3000 );
}
});
animation.setDuration(2000);
splash = (ImageView) findViewById(R.id.splash);
splash.startAnimation( animation );
}
요렇게 하면 2초간 페이드인 에니메이션이 일어나고, 에니메이션 종료 후 3초있다가
???.class 로 이동하게 된다.
이 방법외에 activity 전환 에니메이션을 걸어줘도 된다.
4. 투명 레이아웃 적용하기
스플래쉬 윈도는 배경없이 원하는 이미지만 샥~ 하고 떠야 제맛!!!!
그래서, 배경을 날려본다.
가장 간단한 방법은 엑티비티에 안드로이드 테마를 적용하는 것이다.
manifest.xml 파일을 열어보면 각 엑티비티가 선언되어 있을텐데
그중 스플래시 액티비트를 아래와 같이 변경한다.
<activity android:name=".SplashActivity"
.
.
android:theme="@android:style/Theme.Translucent"
.
.
</activity>
다시 실행해 보면 배경이 투명해진것을 확인 할 수 있다. 하지만, 문제는 역시나 하나 존재하는데~
바로 타이틀바~
요건 스타일로 정의해놓고 적용~
<style name="Theme.Translucent" parent="android:style/Theme.Translucent">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowNoTitle">true</item>
<item name="android:foregroundColor">#fff</item>
</style>
android:theme="@style/Theme.Translucent"
아니면 액티비티 onCreate시에
requestWindowFeature(Window.FEATURE_NO_TITLE);
끗!!!
'프로그래밍 > Android' 카테고리의 다른 글
액티비티 변경 에니메이션 (0) | 2009.12.06 |
---|---|
Animation 관련 샘플 (0) | 2009.12.06 |
ViewFlipper로 뷰 교체하기 (0) | 2009.12.06 |
에니메이션 interpolater (0) | 2009.12.06 |
커스텀속성과 R.styleable (0) | 2009.11.25 |
TextButton 만들기 (0) | 2009.11.22 |
버튼 상태에 따른 배경변경 (0) | 2009.11.22 |
에니메이션 처리하기 (0) | 2009.11.19 |
투명한 레이아웃 만들기 (0) | 2009.11.18 |
메시지 핸들러 사용하기 (0) | 2009.11.16 |