[Android] 초기화면 만들기
아이폰에서 제공되는 기능이지만 안드로이드에선 직접 구현해야하는 초기화면을 한번 만들어 보도록 하겠습니다. 말씀드렸겠지만 아이폰에서는 기본적으로 제공이 되서 개발자는 해당 관련 코드를 생각할 필요없이 이미지 리소스만 링크에만 신경쓰면 됬지만 안드로이드의 경우 사용자가 직접 Activity를 만들어 해당 초기화면을 기술적으로 구현하고 xml으로 뷰를 만들어 리소스와 링크시키는 작업까지 손수해줘야 합니다. 안드로이드 어플리케이션을 계속 만드실 분이라면, 이러한 초기화면을 한번 구현해 놓고 다음 개발에는 해당 소스를 재사용하는것이 좋을듯 싶습니다.
일단 들어가기전에 초기화면이 전체화면이라는 점은 아시고 계실겁니다. 만약에 모르신다면 검색하지 마시고 아래 포스팅을 이용하시기 바랍니다 ^^.
[Android]전체화면 사용하기
일단 숙지하시고 들어가 봅시다!
# 진짜 초기화면 만들기!!
정말 초기화면을 만들어 보겠습니다! 혹시 다른 기능과 뷰들을 개발하고 계시다가 갑자기 "아맞다! 초기화면 만들어야는데 "라고 생각이 드신다면,, 첫 화면을 설정하면되는데, 어렵지 않아요!
위에서 AndroidManifest.xml 파일만 수정하면됩니다. 해당 파일을 더블클릭하시면 하단에 5개의 Tab이 나옵니다. 그중에서 마지막 AndroidManifest.xml이란 텝을 클릭하면 다음과 같은 화면이 나올것입니다.
그럼 중간에 android:name=".IntroActivity" 라는 곳이 보일것입니다. 그렇습니다. 요녀석이 시작 Activity입니다. 고로 새로운 Activity를 만드신후 android:name=".새로운Activity명" 하면 해당 Activity부터 실행이 되겠죠?! 이젠 정말 시작하겠습니다.
일단 IntroView를 간단히 만들어 보겠습니다.
~ intro_activity.xml ~
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:background="@drawable/background" > </LinearLayout>
~ IntroActivity.java ~
package wecon.test.intro; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; public class IntroActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.intro_activity); Handler handler = new Handler(); handler.postDelayed(new Runnable() { public void run() { Intent intent = new Intent(IntroActivity.this, MainActivity.class); startActivity(intent); // 뒤로가기 했을경우 안나오도록 없애주기 >> finish!! finish(); } }, 2000); } }
Handler 클래스의 postDelayed() 라는 메소드를 활용해 보았습니다. 해당 메소드는 특정 시간후에 작업을 처리하기 위해 사용되는 메소드 입니다. 매개변수로는 첫째로 실행할 동작, 그리고 두번째로 실행 시간 입니다 . 실행시간의 경우 밀리세컨드로, 계산하기 편하게 초에다가 1000곱하면 됩니다;; ex)3초 == 3000
첫번째 매개변수로 들어가는 Runnable(){}의 경우 실행할 Activity를 띄워주도록 구현 합니다. 새로운 Activity를 만들수 있다는 가정하에 마지막 finish()에 주목해 봅시다.
해당 Handler를 통해 postDelayed()는 분명히 특정시간후 작업을 처리한다고 했지, 자기자진을 죽인다고 말하진 않았습니다. 고로 Activity Stack(Android task)에 의해 죽지않고 살아있습니다. 뒤로가기(취소)버튼을 클릭하면 초기화면으로 돌아올수 있다는 말입니다. 혹시 어떤 앱을 실행하시고 나서 뒤로가기를 했는데 초기화면을 또볼수 있다면, 그건 아니아니 아니되오! 때문에 finish()를 통해 해당 초기화면 Activity를 종료시켜줍니다.
여기에 메인 화면을 연결시켜주면 구현이 끝납니다(new Intent() 잘 구현해 줍니다 ^^). 마무리를 깔끔히 하기 위해 메인도 한번 만들어 보겠습니다.
~ main_activity.xml ~
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#ffc31e"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="카카오톡" android:gravity="center_horizontal" android:textSize="15sp" android:textColor="#000000" android:paddingTop="5sp" android:paddingBottom="5sp"/> </LinearLayout> <TextView android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="이거슨 카카오톡!" android:textSize="30sp" android:gravity="center_horizontal|center_vertical"/> </LinearLayout>
~ MainActivity.java ~
package wecon.test.intro; import android.app.Activity; import android.os.Bundle; public class MainActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); } }
# 결과화면
카카오톡 화면이 처음 뜹니다.(카톡님 이미지 저작권ㅈㅅ.. 굾굾) 2초간 보여주고 난후..
메인화면이 뜹니다! 뒤로가기 버튼을 누르면 앱이 종료 됩니다! 이거스로 끝! 참 쉽죠?!
'Dev > Android' 카테고리의 다른 글
[Android] 안드로이드 개발환경 구축하기 (8) | 2012.03.19 |
---|---|
[Android] 안드로이드 마켓 개발자 등록하기 (0) | 2012.03.02 |
[Android] 구글맵 api 사용하기 (0) | 2012.01.13 |
[Android]전체화면 사용하기 (0) | 2012.01.11 |
[Android]Sax Parser를 이용한 XML 파싱! (3) | 2012.01.04 |