반응형

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아래에 존재한다 ] 라고 정의하는 형식입니다.

 

간단한...가요?

 

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

반응형

+ Recent posts