본문 바로가기
App Programming/Android Studio

[Android Studio] 레이아웃 (3)

by goatlab 2022. 8. 4.
728x90
반응형
SMALL

레이아웃 위치

 

뷰의 도형은 직사각형이다. 뷰에는 위치가 있으며, 이는 한 쌍의 왼쪽  상단 좌표, 그리고 두 개의 치수가 너비와 높이를 나타내는 형식으로 표현된다. 위치와 치수의 단위는 픽셀이다.

 

뷰의 위치를 검색할 수 있다. getLeft()  getTop() 메서드를 호출하면 된다. 전자는 뷰를 나타내는 직사각형의 왼쪽, 즉 X 좌표를 반환합니다. 후자는 뷰를 나타내는 직사각형의 상단, 즉 Y 좌표를 반환한다. 이들 메서드는 둘 다 뷰의 상위 요소에 상대적인 뷰의 위치를 반환한다. 예를 들어, getLeft()가 20을 반환하는 경우 이는 뷰가 그 뷰의 직접적인 상위 요소의 왼쪽 가장자리에서 오른쪽으로 20픽셀 떨어진 곳에 있다는 뜻이다.

 

그 외에도 불필요한 계산을 피하기 위해 여러 가지 편의 메서드가 제공된다. 구체적으로 getRight()  getBottom()을 들 수 있다. 이들 메서드는 뷰를 나타내는 직사각형의 오른쪽과 하단 가장자리의 좌표를 반환한다. 예를 들어, getRight()를 호출하는 것은 getLeft() + getWidth() 계산과 비슷하다.

 

크기, 패딩 및 여백

 

뷰의 크기는 너비와 높이로 표현된다. 사실 하나의 뷰는 두 쌍의 너비 및 높이 값을 소유한다.

 

첫 번째 쌍을 측정된 너비  측정된 높이라고 한다. 이들 치수는 상위 요소 내에서 원하는 뷰 크기를 정의한다. 측정된 치수를 가져오려면 getMeasuredWidth()  getMeasuredHeight()를 호출하면 된다.

두 번째 쌍은 단순히 너비  높이라고 일컬으며, 때로는 그리기 너비  그리기 높이로 부를 때도 있다. 이러한 치수는 그리기 시간 및 레이아웃 후에 뷰가 화면에 표시되는 실제 크기를 정의한다. 이들 값은 측정된 너비 및 높이와 달라도 되지만 꼭 달라야 하는 것은 아니다. 너비와 높이를 가져오려면 getWidth()  getHeight()를 호출하면 된다.

뷰의 치수를 측정하기 위해 뷰는 자신의 패딩을 감안한다. 패딩은 뷰의 왼쪽, 상단, 오른쪽 및 하단 부분에 관해 픽셀로 표시된다. 패딩은 정해진 픽셀 수를 사용하여 뷰의 콘텐츠를 오프셋하는 데 쓰일 수도 있다. 예를 들어, 왼쪽 패딩을 2로 설정하면 뷰의 콘텐츠를 왼쪽 가장자리에서 오른쪽으로 2픽셀 밀어낸다. 패딩을 설정할 때에는 setPadding(int, int, int, int) 메서드를 사용하면 되고, 이를 쿼리하려면 getPaddingLeft(), getPaddingTop(), getPaddingRight(), getPaddingBottom()을 호출하면 된다.

 

뷰는 패딩을 정의할 수 있지만, 여백 지원은 전혀 제공하지 않는다. 다만, 뷰 그룹이 그와 같은 지원을 제공한다. 자세한 내용은 ViewGroup  ViewGroup.MarginLayoutParams를 참고하면 된다. (치수에 관한 자세한 내용은 치수 값을 참고)

 

일반 레이아웃

 

ViewGroup 클래스의 각 서브클래스는 각기 고유한 방식으로 자신 안에 중첩된 뷰를 표시한다. 아래는 Android 플랫폼에서 기본 제공되는, 보다 일반적인 레이아웃 유형을 몇 가지 나타낸 것이다.

 

참고: UI 디자인을 달성하기 위해 하나 이상의 레이아웃을 다른 레이아웃 안에 중첩할 수 있지만 레이아웃 계층 구조를 가능한 한 얕게 유지하도록 애써야 한다. 중첩된 레이아웃이 적을수록 레이아웃이 더 빠르게 그려진다 (가로로 넓은 뷰 계층 구조가 세로로 깊은 뷰 계층 구조보다 낫다).
선형 레이아웃 상대 레이아웃 웹 보기
여러 하위 요소를 하나의 가로 방향 또는 세로 방향 행으로 정리하는 레이아웃. 이 레이아웃은 창의 길이가 화면 길이를 웃도는 경우 스크롤바를 생성한다. 여러 하위 객체의 위치를 서로 상대적으로 나타내거나 (하위 객체 A가 하위 객체 B의 왼쪽), 상위 요소와 상대적으로 나타낼 수 있도록 해준다 (상위 요소의 맨 위에 맞춰 정렬).
웹페이지를 표시한다.

 

https://developer.android.com/guide/topics/ui/declaring-layout?hl=ko 

 

레이아웃  |  Android 개발자  |  Android Developers

레이아웃은 활동 또는 앱 위젯의 UI와 같은 사용자 인터페이스의 시각적 구조를 정의합니다. 두 가지 방법으로 레이아웃을 선언할 수 있습니다. Android 프레임워크를 통해 이 두 가지 메서드의 하

developer.android.com

 

728x90
반응형
LIST

'App Programming > Android Studio' 카테고리의 다른 글

[Android Studio] Default Activity not found  (0) 2022.08.04
[Android Studio] 레이아웃 (4)  (0) 2022.08.04
[Android Studio] 레이아웃 (2)  (0) 2022.08.04
[Android Studio] 레이아웃 (1)  (0) 2022.08.04
Android Studio  (0) 2022.04.06