Android Studio를 통해 프로젝트를 생성하면 Activity_main.xml(화면) , MainActivity.java(기능)을 담당하는 파일이 생성됩니다.
해당 파일은 아래와 같은 경로에 위치합니다.
app > java > PackageName > MainActivity.java
app > res > layout > Activity_main.xml
눈모양 : 해당 뷰안에 다양한 조건 (Margin,Padding, Condition 등)을 표기해줍니다.
자석모양 : 제약 및 상대 조건이 있을 경우, 자동으로 라인을 생성해 줍니다.
I 모양 : 가이드라인을 만들어 상단과 하단 좌, 우측 등 정렬하는 용도로 사용합니다.
제약 위젯 : 현재 버튼이 정 중앙에 위치해 있지만, 네모칸의 숫자를 입력시, 해당 만큼 추가 Margin을 가집니다.
또한 동그란 위젯을 통하여 Bias[치우침]을 조절할 수 있습니다.
Activity_main.xml의 하단 Text 탭을 확인 해보면 Design에서 그려준 이미지가 XML화 되어 있습니다.
그중 xmlns:app="http://schemas.android.com/apk/res - auto" 는 안드로이드 SDK를 사용한다는 의미이며
android: 는 안드로이드SDK에 있는 속성
app: 는 외부라이브러리 혹은 프로젝트에서 지정한 속성 사용을 의미합니다.
Layout의 종류
-
Constraint Layout : 프로젝트 생성시, 제약조건을 가지고 생성되며, 제약조건을 통해 뷰의 위치를 화면에 배치를 합니다.
-
Linear Layout : 박스가 쌓아올리 듯, 방향을 반드시 지정하게 되어있습니다.
-
orientation : vertical(세로), horizontal(가로)
-
Relative Layout : 상대 레이아웃제약 레이아웃과 유사하며 , 컨테이너나 다른 뷰의 관계를 통해 사용합니다.
-
layout_alignParentStart=true : 부모 영역 상단에 붙입니다.
-
layout_alignParentLeft=true : 부모 영역 좌측에 붙입니다.
-
layout_below="@+id/기준되는 부모의id 값" : 상단에 붙일 영역의 id값을 넣습니다.
-
layout_above="@+id/아래로붙일 id값" : 아래 붙일 영역의 id를 붙여넣습니다.
-
Frame Layout : 한번에 하나의 뷰만 보여줍니다. 뷰가 여러개 들어가면 중첩 되며,(마지막만 보임)전환효과를 낼 수 있습니다.
-
Table Layout : 격자 형태로 배치하게 됩니다.
All Attributes
-
layout_width, height : match_parent (해당 레이아웃의 너비만큼), wrap_content(내용물의 크기만큼)
-
layout_gravity : 정렬 속성을 사용할 수 있습니다.
-
gravity : 내용물의 정렬 속성을 사용할 수 있습니다.
-
layout_margin : 뷰의 영역을 기준으로 테두리까지의 공백을 각기 설정 할 수 있습니다.
-
padding : 테두리를 기준으로 내용물 사이의 공백을 각기 설정 할 수 있습니다.
-
textSize : 글자 색을 변경 할 수 있습니다.
-
background : 색상을 지정 할 수 있습니다.
-
layout_weight : 남아있는 공간을 분할 합니다.
뷰의 영역
버튼을 예시로 들자면
-
글자의 영역: 516x910 라는 칸 안에 입력됩니다.
-
Border 영역: 버튼의 테두리를 의미 합니다.
-
Padding 영역: 테투리와 글자 사이의 간격을 의미합니다.
-
Margin 영역: 실제 해당 버튼이 차지하는 공간에서 테투리까지의 공백을 의미합니다.