[android] Material Design의 뷰 타입 및 레이아웃

Material Design은 안드로이드 앱의 사용자 인터페이스(UI)를 디자인하기 위한 표준 가이드라인이다. Material Design은 사용자 경험을 향상시키고 일관성 있는 디자인을 제공하기 위해 뷰 타입과 레이아웃을 정의하고 있다.

뷰 타입

Material Design에서는 안드로이드 앱에서 일반적으로 사용되는 다양한 뷰 타입을 정의하고 있다. 몇 가지 중요한 뷰 타입은 다음과 같다.

텍스트 뷰 (TextView)

텍스트를 표시하는 데 사용되는 기본적인 뷰 타입이다. Material Design에서는 텍스트의 크기, 색상, 글꼴 등을 통해 일관성 있고 가독성 있는 텍스트 표시를 지향하고 있다.

<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello, Material Design!"
    android:textSize="16sp"
    android:textColor="@color/black" />

버튼 (Button)

사용자의 상호작용을 유도하기 위해 사용되는 뷰 타입이다. Material Design에서는 그림자 효과, 색상 변화 등을 통해 사용자가 버튼을 눌렀을 때의 시각적 피드백을 제공한다.

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Click Me"
    android:backgroundTint="@color/primaryColor" />

이미지 뷰 (ImageView)

이미지를 표시하는 데 사용되는 뷰 타입이다. Material Design에서는 이미지의 크기와 비율을 유지하며 그림자 효과를 통해 입체적이고 현실적인 이미지 표현을 지향하고 있다.

<ImageView
    android:id="@+id/imageView"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:src="@drawable/image"
    android:scaleType="centerCrop" />

레이아웃

Material Design에서는 다양한 레이아웃을 제공하여 화면의 구조를 정의하고 있다. 몇 가지 중요한 레이아웃은 다음과 같다.

리니어 레이아웃 (LinearLayout)

자식 뷰들을 수평이나 수직으로 정렬하는 데 사용되는 레이아웃이다. Material Design에서는 여백과 정렬을 통해 일관성 있고 균형있는 레이아웃을 지향하고 있다.

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="16dp">
    <!-- 자식 뷰들 -->
</LinearLayout>

상대 레이아웃 (RelativeLayout)

자식 뷰들을 상대적인 위치에 배치하는 데 사용되는 레이아웃이다. Material Design에서는 제약(Constraint)을 활용하여 유연하고 동적인 레이아웃을 제공하기 위해 제약 레이아웃(ConstraintLayout)을 권장하고 있다.

<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <!-- 자식 뷰들 -->
</androidx.constraintlayout.widget.ConstraintLayout>

Material Design의 뷰 타입과 레이아웃은 안드로이드 앱의 사용자 인터페이스를 효과적으로 디자인하고 사용자 경험을 향상시키는 데 중요한 역할을 한다. Material Design의 가이드라인을 준수하면서 각 뷰 타입과 레이아웃을 적절하게 활용하면 더욱 멋진 앱을 개발할 수 있다.

Material Design - Components Android Developers - Layouts