본문 바로가기

오늘의 공부/android

[모두의 안드로이드] 6일차 관광지도 앱 만들기 3.앱시작화면 만들기

참고서적:모두의 안드로이드

*제가 직접 사서 참고하고 있습니다.

개발환경:우분투 20.04 lts


[1.시작화면 만들기]

앱이 처음 시작 될 때 이미지를 몇 초간 띄운 후에 지도 앱이 열리게 해보겠습니다. 이렇게 앱이 시작 할 때 뜨는 로고나 사진 같은 이미지를 인트로(intro) 또는 스플래쉬(splash)라고 합니다. 

 

app>java>패키지 폴더의 오른쪽을 클릭해서 New > Activity > Empty Activity

 

 

그리고 액티비티 이름을 정하고 Launcher Activity 체크박스 클릭해주고 Finish누르고 종료합니다.

 

 

 

 

[2.사용할 이미지 넣기]

 

 

 

출처:https://www.suwon.go.kr/sw-www/www05/www05-03/www05-03-04.jsp

출처:https://www.suwon.go.kr/sw-www/www05/www05-03/www05-03-04.jsp

 

사용할 이미지를 res/drawable에 이미지를 복사해서 붙여넣습니다.

 

 

 

 

 

[2.1레이아웃 배경에 이미지 넣기]

 

app / res / layout 폴더에 가서 아까 인트로로 지정한 액티비티 xml파일을 엽니다.(제 경우는  activity_suwon_int 입니다)

 

 

 

그리고 xml파일이 열리면 design탭으로갑니다.그리고 왼쪽하단에 Constraint tree의 ConstraintLayout을 클릭합니다.

 

 

 

그러면 오른쪽에 attribute칸으로 가서 오른쪽 부분 긴 작대기 아이콘을 누릅니다.

 

 

 

그러면 아까 복사해둔 이미지를 클릭하고 ok합니다.

 

 

 

[3.java파일 설정]

인트로 자바파일로 이동해서 onCreate()함수에 코드를 추가합니다.

 

 

 

[변경 전]

 

 

 

 

[변경 후]

 

 

 

 

//추가코드1:post delay

      Handler x = new Handler();
      x.postDelayed(new SplashHandler(),1000);
    }



 //추가코드2
 
 public class SplashHandler implements Runnable {
    public void run(){
       Intent intent =  new Intent(getApplicationContext(),
                        MapsActivity.class);
       startActivity(intent);
       finish();

      }
    }

 

 

post delay는 특정 시간이 지난 후에 지정된 코드를호출하는 역할입니다. 1000은 여기서 밀리세컨즈 단위이므로 1000밀리세컨드는 1초 이므로 , 1초 후에 SplashHandler 라는 클래스를 부릅니다. (추가코드2에 있는 클래스)

 

SplashHandler클래스는 스레드 입니다.

스레드는 특정 기능을 수행하기 위해 대기하고 있다가 자신이 호출되면 내부 코드를 수행합니다.

그래서 SplashHandler 가 호출되면 지도화면(MapsActivity로 전환됩니다.)

 

 

 

*스레드는  프로그램 내에서 실행되는 흐름의 단위입니다.

 

 

[4.실행화면]

일정 시간 후에 지도로 넘어가는 것을 확인할 수 있습니다.