반응형

1. View

안드로이드 앱에서 보이는 모든 요소들을 View라고하며, 이것은 View라는 Class를 상속받아 사용됩니다.

 

전에 보았던 activity_main.xml에서 '버튼', '이미지뷰', '텍스트상자' 등을 추가하면 이것들은 하나하나가 View클래스를 상속받아 사용되게됩니다.

 

즉, View라는 클래스는 모든 UI요소들의 부모클래스가 되게됩니다.

 

View는 레이아웃위젯으로 분류됩니다.

 

2. Widget(위젯)과 Layout(레이아웃)

위젯은 버튼, 텍스트상자와 같이 특별한 기능을 갖고있는 View를 의미합니다.

 

간단하죠?

 

다음으로 레이아웃은 컨테이너라고 불리기도 합니다.

 

독립적으로 특별한 기능을 갖고있다기 보다는 다른 뷰(레이아웃/위젯)를 포함하는 틀이라고 볼 수 있습니다.

 

쉽게 생각해서 한글에서의 표가 내부에 글자나 이미지 또는 또 다른 표를 넣을 수 있듯이, 레이아웃도 내부에 Button이나 ImageView와 같은 위젯 또는 또 다른 Layout을 넣을 수 있습니다.

 

여러 종류의 레이아웃들이 존재하는데 크게 Linear와 Relative로 볼 수 있습니다.

3. Linear Layout

가장 많이 사용되는 레이아웃의 종류로 좌에서 우 또는 상에서 하로 내부에 View를 쌓는 Layout입니다.

 

처음 프로젝트를 생성하고, [ activity_main.xml ] 의 하단에보면 Design과 Text가 있는데 Text로 이동해보면 아래와 같은 모습을 볼 수 잇습니다.

 

activity_main.xml의 Text

Text영을 클릭하면 좌측에는 xml코드가, 우측에는 xml의 이미지 미리보기가 표시됩니다.

 

여기서 조금 수정해서 Linear Layout으로 변경해보겠습니다.

 

 

위와같이 처음 Layout영역을 LinearLayout으로 변경해주고, android:orientation="vertical" 속성을 추가해주었습니다.

 

일부 입력으로 자동완성이 가능해서 복사 가능하게 올리지는 않았습니다.

 

다시 Design으로 돌아가서 Button들을 몇개 넣어보겠습니다. (좌측의 Buttons에서 몇개의 버튼들을 끌어넣으면 됩니다.)

 

5개의 Button을 넣었더니 미리보기 영역에 위와같이 버튼들이 들어간 것을 볼 수 있습니다.

 

즉, LinearLayout의 vertical 속성은 상에서 하 방향으로 View들이 들어가는 것을 볼 수 있습니다.

 

만약 horizontal으로 값을 넣었다면 좌에서 우로 View들이 들어가는 것을 보실 수 있습니다.

 

또한 Button과 같은 View들은 여러개의 속성들을 갖고있습니다.

 

Design영역에서 Button을 클릭하면 우측에 속성들이 표시되는 것을 볼 수 있습니다.

 

몇가지 대표적인 것들을 정리하면 아래와 같습니다.

 

  • id : xml에서 생성한 View를 구분하는 명칭입니다.
  • layout_width : View의 가로 길이
  • layout_height : View의 세로 길이
  • margin : View의 외부 여백
  • padding : view의 내부 여백
  • layout_gravity : View의 위치 정렬 기준
  • gravity : View 내부 요소들의 정렬 기준
  • background : View 배경(색/이미지 등)

4. Relative Layout

Relative Layout은 레이아웃 내부의 다른 View들 간의 관계를 통해서 Layout내부에서의 위치를 결정하는 종류의 Layout입니다.

 

예를들어 Button1과 Button2가 있다면, [ Button2는 Button1의 5dp아래에 존재한다 ] 라고 정의하는 형식입니다.

 

간단한...가요?

 

실제로 만들어서 건들여보시면 쉽게 이해하실 수 있습니다.

반응형
반응형

간단하게 Activity의 상태변화에 따라 실행되는 메서드들에 대해서 다루고 넘어갑니다.

(Activity의 생명주기 변화에 따른 실행 메서드를 의미합니다.)

 

- on 메서드

  • onCreate : Activity 생성될 때, 화면회전이 발생할 때 자동으로 호출됨
  • onStart : onCreate 실행 후, Activity가 정지상태에서 활동상태로 이동할 때 호출(홈버튼눌러서 화면 이동 후 다시 앱으로 돌아올 때)
  • onResume : onStart 실행 후, Activity가 일시정지 후 다시 돌아올 때 호출(일시정지 = 앱 위에 팝업창이 떴다가 없어질 때)
  • onRestart : Activity가 정지 상태 후 활동 상태로 돌아갈 때, onStart 이전에 실행됨
  • onPause : 일시 정지 상태일 때 호출, 화면상에서 Activity가 사라지거나, 팝업창 등이 나타날 때 호출
  • onStop : Activity가 화면에서 사라질 경우
  • onDestroy : 현재 Activity(APP)가 완전히 제거될 경우(앱종료)

 

onCreate : 앱이 최초로 실행할 때 수행되야 하는 코드를 넣어줍니다.

onPause : 앱이 무슨 이유로든 사용불가 상태가 될 경우 수행될 코드를 넣어줍니다.

onResume : 앱이 수행상태로 이동했을 때 필요한 코드를 넣어줍니다.

onDestroy : 앱이 종료될 경우 필요한 코드를 넣어줍니다.

반응형
반응형

0. 시작하기전에

  • 개인사정으로 윈도우 환경이 아닌 맥(OSX)환경에서 개발을 진행하겠습니다.(큰 차이는 없습니다.)

 

1. Android 구성요소

안드로이드의 4대 구성요소에 대해서 간단히 보면 아래와 같습니다.

  • Activity : 현재 화면에 대한 작업을 담당
  • Service : 어플리케이션이 Background에서 수행하는 작업 담당
  • Broadcast Receiver : 시스템을 감시하다 특정 이벤트에 대한 작업 담당
  • Content Provider : 데이터 공유 작업을 수행하는 작업 담당

 

2. AndroidManifest.xml

app -> manifests 를 보시면 [AndroidManifest.xml]이 존재합니다.

 

해당 파일에 제작하는 앱의 기본사항을 명시해줘야합니다. 때문에 어떻게보면 가장 중요한 파일이라고 볼 수 있습니다.

 

클릭해보시면 위와같은 코드가 적혀있는 것을 볼 수 있습니다.

 

보시게되면 android: ~ 영역이 보이는데요. 몇개만 보면

 

allowBackup : 백업 기능의 할성화

icon, roundIcon : 앱의 아이콘 이미지 설정

label : 앱의 이름

 

위와같은 기능을 담당한다고 볼 수 있습니다.(나중에 천천히 다뤄보겠습니다.)

 

이 후 <activity android:name=".MainActivity">라는 영역이 있습니다.

 

해당 영역은 MainActivity에 대한 내용을 담고있습니다.

 

하위의 action 영역을보면 "android.intent.action.MAIN"이라는 부분이 있는데요.

 

이 녀석을 Action으로 갖고있는 녀석이 앱 실행시 가장먼저 수행되는 Activity라는 의미를 갖고있습니다.

 

따라서 android.intent.action.MAIN은 오로지 하나만 존재하며, 두개이상 존재할 경우 최상위에 적혀있는 1개만 작동하게됩니다.!!!

 

 

2. MainActivity

처음 프로젝트를 생성하면 MainActivity라는 녀석이 생깁니다.

 

위에서 언급했듯이 android.intent.action.MAIN을 Action으로 갖고있는 이 MainActivity가 앱 실행시 최초로 실행되는 Activity가 되게됩니다.

 

아래와 같이 생겼습니다.

 

 

기본적으로 보게되면 위와같이 생겼는데요.

 

onCreate라는 녀석이 Override되어있는 것을 볼 수 있습니다.

 

onCreate는 Activity가 생성될 때, 그리고 화면 회전이 발생할 때 자동으로 호출되게됩니다.

 

즉, 처음 앱을 실행하면 onCreate에 작성된 코드가 실행이 되게됩니다.

 

보면, setContentView(R.layout.activity_main)라는 부분이 있습니다.

 

R은 res를 의미합니다. 아래 경로를 참고하세요.

 

위와같이 res(=R) 이하의 layout -> activity_main.xml이 존재하는 것을 볼 수 있습니다.

 

아직 setContentView라는 녀석이 무슨 기능을 하는지 언급하지 않았지만, activity_main.xml을 클릭해보면 아래와 같은 모습을 볼 수 있습니다.

 

벌써 느낌이 오시죠?

 

3. activity_main.xml

위에서 보신것 처럼, 이 파일은 눈에 보이는 영역에 대한 디자인을 담당하는 파일입니다.

 

위에 보이는 화면외에도 좌우 메뉴를 보시면 Button이나 ImageView같은 녀석들을 볼 수 있습니다.

 

이런 녀석들을 이용해서 앞으로 앱을 꾸며가겠습니다.

 

 

 

 

4. 정리

오늘 가장 중요한 3개의 파일을 봤습니다.

onCreate외에도 Activity의 상태에 따라서 수행되는 여러개의 메서드가 존재합니다.

 

이러한 메서드에 대해서는 다음 페이지에 간단하게 정의하고 넘어가겠습니다.

반응형

+ Recent posts