View
: 모든 뷰 클래스의 최상위 클래스로, 액티비티는 View
의 서브 클래스만 화면에 출력한다.ViewGroup
: View
의 하위 클래스지만 자체 UI는 없다. 다른 뷰들을 묶어 제어할 때 사용한다. 뷰를 담는 그릇(컨테이너)이라고 생각하면 된다. 레이아웃 클래스들이 ViewGroup
의 서브 클래스이다.위 그림처럼 객체를 계층 구조로 만든 패턴을 컴포지트 패턴 또는 문서 객체 모델이라고 한다.
View
가 있을 때 보이지 않는 View
의 테두리 영역(Border, 경계선)이 존재한다는 것을 인지해야 한다. 이걸 Box라고 부르는데 View
는 이 Box를 기준으로 안쪽과 바깥쪽 공간을 가진다.
안드로이드에서 View
를 정렬할 때 gravity
속성을 사용한다. 정렬의 의미인 align이 아닌 gravity
인 이유는 정렬 방법을 무게중심을 어디다 두느냐로 이해하면 될 것이다.
View
가 모두 채워지지 않아 여유 공간이 생겼을 때 여유 공간 안에서 View
를 정렬함View
안에 표시하는 Content
정렬함. (TextView
의 경우 글자가 Content
이며, ImageView
의 경우 이미지가 Content
이다.)