Android-UI 레이아웃

사용자 인터페이스의 기본 구성 요소는 ViewView 클래스에서 생성되고 화면의 직사각형 영역을 차지하며 그리기 및 이벤트 처리를 담당하는 객체입니다. View는 버튼, 텍스트 필드 등과 같은 대화 형 UI 구성 요소를 만드는 데 사용되는 위젯의 기본 클래스입니다.

그만큼 ViewGroup 의 하위 클래스입니다 View 다른 뷰 또는 다른 뷰 그룹을 보유하고 레이아웃 속성을 정의하는 보이지 않는 컨테이너를 제공합니다.

세 번째 수준에서는 ViewGroup 클래스의 하위 클래스 인 다양한 레이아웃이 있으며 일반적인 레이아웃은 Android 사용자 인터페이스의 시각적 구조를 정의하며 다음을 사용하여 런타임에 만들 수 있습니다. View/ViewGroup 개체 또는 간단한 XML 파일을 사용하여 레이아웃을 선언 할 수 있습니다. main_layout.xml 프로젝트의 res / layout 폴더에 있습니다.

레이아웃 매개 변수

이 튜토리얼은 XML 파일에 정의 된 레이아웃을 기반으로 GUI를 만드는 방법에 대해 자세히 설명합니다. 레이아웃에는 버튼, 레이블, 텍스트 상자 등과 같은 모든 유형의 위젯이 포함될 수 있습니다. 다음은 LinearLayout을 갖는 XML 파일의 간단한 예입니다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical" >
   
   <TextView android:id="@+id/text"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="This is a TextView" />
      
   <Button android:id="@+id/button"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="This is a Button" />
      
   <!-- More GUI components go here  -->
   
</LinearLayout>

레이아웃이 생성되면 아래와 같이 Activity.onCreate () 콜백 구현 에서 애플리케이션 코드에서 레이아웃 리소스를로드 할 수 있습니다.

public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
}

Android 레이아웃 유형

거의 모든 Android 애플리케이션에서 다양한보기, 모양 및 느낌을 제공하는 데 사용할 Android에서 제공하는 많은 레이아웃이 있습니다.

Sr. 아니요 레이아웃 및 설명
1 선형 레이아웃

LinearLayout은 모든 자식을 세로 또는 가로로 단일 방향으로 정렬하는보기 그룹입니다.

2 상대 레이아웃

RelativeLayout은 상대적 위치에 자식보기를 표시하는보기 그룹입니다.

테이블 레이아웃

TableLayout은 뷰를 행과 열로 그룹화하는 뷰입니다.

4 절대 레이아웃

AbsoluteLayout을 사용하면 자식의 정확한 위치를 지정할 수 있습니다.

5 프레임 레이아웃

FrameLayout은 단일보기를 표시하는 데 사용할 수있는 화면의 자리 표시 자입니다.

6 목록보기

ListView는 스크롤 가능한 항목 목록을 표시하는보기 그룹입니다.

7 그리드보기

GridView는 스크롤 가능한 2 차원 그리드로 항목을 표시하는 ViewGroup입니다.

레이아웃 속성

각 레이아웃에는 해당 레이아웃의 시각적 속성을 정의하는 속성 집합이 있습니다. 모든 레이아웃에는 공통 속성이 거의 없으며 해당 레이아웃에 특정한 다른 속성이 있습니다. 다음은 공통 속성이며 모든 레이아웃에 적용됩니다.

Sr. 아니요 속성 및 설명
1

android:id

뷰를 고유하게 식별하는 ID입니다.

2

android:layout_width

이것은 레이아웃의 너비입니다.

android:layout_height

이것은 레이아웃의 높이입니다.

4

android:layout_marginTop

이것은 레이아웃 상단의 추가 공간입니다.

5

android:layout_marginBottom

레이아웃 하단의 ​​추가 공간입니다.

6

android:layout_marginLeft

이것은 레이아웃의 왼쪽에있는 추가 공간입니다.

7

android:layout_marginRight

이것은 레이아웃의 오른쪽에있는 추가 공간입니다.

8

android:layout_gravity

하위 뷰가 배치되는 방식을 지정합니다.

9

android:layout_weight

이것은 레이아웃의 추가 공간 중 어느 정도를 뷰에 할당해야하는지 지정합니다.

10

android:layout_x

레이아웃의 x 좌표를 지정합니다.

11

android:layout_y

레이아웃의 y 좌표를 지정합니다.

12

android:layout_width

이것은 레이아웃의 너비입니다.

13

android:paddingLeft

레이아웃을 위해 채워진 왼쪽 패딩입니다.

14

android:paddingRight

이것은 레이아웃을 위해 채워진 오른쪽 패딩입니다.

15

android:paddingTop

이것은 레이아웃을 위해 채워진 상단 패딩입니다.

16

android:paddingBottom

이것은 레이아웃을 위해 채워진 하단 패딩입니다.

여기서 너비와 높이는 dp (밀도 독립 픽셀), sp (축척 독립 픽셀), pt (인치의 1/72 인 포인트), px ()로 지정할 수있는 레이아웃 / 뷰의 치수입니다. 픽셀), mm (밀리미터) 및 마지막으로 인치 (인치).

정확한 치수로 너비와 높이를 지정할 수 있지만 더 자주 이러한 상수 중 하나를 사용하여 너비 또는 높이를 설정합니다.

  • android:layout_width=wrap_content 콘텐츠에 필요한 크기에 맞게 뷰의 크기를 조정합니다.

  • android:layout_width=fill_parent 당신의 관점이 부모 관점만큼 커지도록 지시합니다.

Gravity 속성은 뷰 객체를 배치하는 데 중요한 역할을하며 다음 상수 값 중 하나 이상 ( '|'로 구분)을 사용할 수 있습니다.

일정한 기술
상단 0x30 크기를 변경하지 않고 컨테이너 상단으로 개체를 밀어 넣습니다.
바닥 0x50 크기를 변경하지 않고 컨테이너의 맨 아래로 개체를 밀어 넣습니다.
왼쪽 0x03 크기를 변경하지 않고 컨테이너의 왼쪽으로 개체를 밉니다.
권리 0x05 크기를 변경하지 않고 컨테이너의 오른쪽으로 개체를 밉니다.
center_vertical 0x10 크기를 변경하지 않고 컨테이너의 수직 중앙에 개체를 놓습니다.
fill_vertical 0x70 필요한 경우 개체의 세로 크기를 늘려 컨테이너를 완전히 채 웁니다.
center_horizontal 0x01 크기를 변경하지 않고 컨테이너의 수평 중앙에 개체를 놓습니다.
fill_horizontal 0x07 필요한 경우 개체의 가로 크기를 늘려 컨테이너를 완전히 채 웁니다.
센터 0x11 크기를 변경하지 않고 세로 및 가로 축 모두에서 컨테이너 중앙에 개체를 배치합니다.
가득 따르다 0x77 필요한 경우 개체의 가로 및 세로 크기를 늘려 컨테이너를 완전히 채 웁니다.
clip_vertical 0x80 자식의 위쪽 및 / 또는 아래쪽 가장자리가 컨테이너 경계에 맞게 잘 리도록 설정할 수있는 추가 옵션입니다. 클립은 수직 중력을 기반으로합니다. 위쪽 중력은 아래쪽 가장자리를 자르고 아래쪽 중력은 위쪽 가장자리를 자르며 어느 쪽도 양쪽 가장자리를 모두 자르지 않습니다.
clip_horizontal 0x08 자식의 왼쪽 및 / 또는 오른쪽 가장자리가 컨테이너 경계에 맞게 잘 리도록 설정할 수있는 추가 옵션입니다. 클립은 수평 중력을 기반으로합니다. 왼쪽 중력은 오른쪽 가장자리를 자르고 오른쪽 중력은 왼쪽 가장자리를 자르고 어느 쪽도 양쪽 가장자리를 자르지 않습니다.
스타트 0x00800003 크기를 변경하지 않고 컨테이너의 시작 부분으로 개체를 밀어 넣습니다.
종료 0x00800005 크기를 변경하지 않고 컨테이너의 끝으로 개체를 밀어 넣습니다.

식별보기

보기 개체에는 트리 내에서보기를 고유하게 식별하는 고유 ID가 할당되어있을 수 있습니다. XML 태그 내부의 ID 구문은 다음과 같습니다.

android:id="@+id/my_button"

다음은 @ 및 + 기호에 대한 간략한 설명입니다.

  • 문자열의 시작 부분에있는 at 기호 (@)는 XML 파서가 나머지 ID 문자열을 구문 분석 및 확장하고이를 ID 리소스로 식별해야 함을 나타냅니다.

  • 더하기 기호 (+)는 이것이 리소스에 생성 및 추가되어야하는 새 리소스 이름임을 의미합니다. 보기 개체의 인스턴스를 만들고 레이아웃에서 캡처하려면 다음을 사용하십시오.

Button myButton = (Button) findViewById(R.id.my_button);