콘텐츠로 건너뛰기

자주 방문한 페이지

최근 방문한 페이지

navigation

시작하기

머티리얼 디자인으로 앱을 생성하려면:

  1. 머티리얼 디자인 사양을 검토합니다.
  2. 앱에 머티리얼 테마를 적용합니다.
  3. 머티리얼 디자인 지침에 따라 레이아웃을 생성합니다.
  4. 그림자를 드리우기 위한 뷰의 엘리베이션을 지정합니다.
  5. 목록 및 카드에는 시스템 위젯을 사용합니다.
  6. 앱에서 애니메이션을 사용자지정합니다.

이전 버전과의 호환성 유지

Android 5.0 이전 버전과의 호환성을 유지하면서 다양한 머티리얼 디자인 기능을 앱에 추가할 수 있습니다. 자세한 내용은 호환성 유지를 참조하세요.

머티리얼 디자인으로 앱 업데이트

머티리얼 디자인을 통합하기 위해 기존 앱을 업데이트하려면 머티리얼 디자인 지침에 따라 레이아웃을 업데이트하세요. 또한 깊이, 터치 피드백, 애니메이션도 통합하세요.

머티리얼 디자인으로 새 앱 생성

머티리얼 디자인 기능으로 새 앱을 생성하는 경우, 머티리얼 디자인 지침은 효율적인 디자인 프레임워크를 제공합니다. 앱 디자인 및 개발 시 이 지침을 따르고 Android 프레임워크의 새로운 기능을 사용하세요.

머티리얼 테마 적용

머티리얼 테마를 앱에 적용하려면 android:Theme.Material에서 상속하는 스타일을 지정합니다.

<!-- res/values/styles.xml -->
<resources>
  <!-- your theme inherits from the material theme -->
  <style name="AppTheme" parent="android:Theme.Material">
    <!-- theme customizations -->
  </style>
</resources>

머티리얼 테마는 터치 피드백 및 액티비티 전환을 위한 색상표 및 기본 애니메이션을 설정할 수 있는 업데이트된 시스템 위젯을 제공합니다. 자세한 내용은 머티리얼 테마 사용을 참조하세요.

레이아웃 디자인

머티리얼 테마를 적용하고 사용자지정하는 것과 더불어, 레이아웃이 머티리얼 디자인 지침을 따라야 합니다. 레이아웃 디자인 시 다음 사항에 특히 주의하세요.

뷰에서 엘리베이션 지정

뷰는 그림자를 드리울 수 있으며 뷰의 엘리베이션 값은 그림자 크기 및 그리는 순서를 결정합니다. 뷰의 엘리베이션을 설정하려면 레이아웃에서 android:elevation 특성을 사용하세요.

<TextView
    android:id="@+id/my_textview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/next"
    android:background="@color/white"
    android:elevation="5dp" />

translationZ 속성을 사용하여 뷰 엘리베이션의 일시적 변경을 반영하는 애니메이션을 생성할 수 있습니다. 엘리베이션 변경은 터치 제스처에 반응할 때 유용하게 쓰일 수 있습니다.

자세한 내용은 그림자 정의 및 뷰 클리핑을 참조하세요.

목록 및 카드 생성

RecyclerViewListView의 플러그 기능이 개선된 버전으로, 다양한 레이아웃 유형을 지원하고 향상된 성능을 제공합니다. CardView를 사용하면 모든 앱에서 일관된 모습으로 카드 안의 정보를 표시할 수 있습니다. 다음 코드 예는 CardView를 레이아웃에 포함시키는 방법을 보여줍니다.

<android.support.v7.widget.CardView
    android:id="@+id/card_view"
    android:layout_width="200dp"
    android:layout_height="200dp"
    card_view:cardCornerRadius="3dp">
    ...
</android.support.v7.widget.CardView>

자세한 내용은 목록 및 카드 생성을 참조하세요.

애니메이션 사용자지정

Android 5.0(API 레벨 21)에는 앱에서 사용자지정 애니메이션 생성을 위한 새 API가 포함되어 있습니다. 예를 들어, 액티비티 전환을 활성화하고 액티비티 내부에서 나가기 전환을 정의할 수 있습니다.

public class MyActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // enable transitions
        getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
        setContentView(R.layout.activity_my);
    }

    public void onSomeButtonClicked(View view) {
        getWindow().setExitTransition(new Explode());
        Intent intent = new Intent(this, MyOtherActivity.class);
        startActivity(intent,
                      ActivityOptions
                          .makeSceneTransitionAnimation(this).toBundle());
    }
}

이 액티비티에서 다른 액티비티를 시작하면 나가기 전환이 활성화됩니다.

새 애니메이션 API에 대한 자세한 내용은 사용자지정 애니메이션 정의를 참조하세요.

이 사이트는 쿠키를 사용하여 사이트별 언어 및 표시 옵션에 대한 환경설정을 저장합니다.

Google Play에서 성공을 거두는 데 도움이 되는 최신 Android 개발자 뉴스 및 도움말을 받아 보세요.

* 필수 입력란

완료되었습니다.

WeChat에서 Google Developers 팔로우하기

이 사이트를 (으)로 탐색할까요?

페이지를 요청했지만 이 사이트의 언어 환경설정은 입니다.

언어 환경설정을 변경하고 이 사이트를 (으)로 탐색할까요? 언어 환경설정을 나중에 변경하려면 각 페이지 하단의 언어 메뉴를 사용하세요.

이 클래스를 사용하려면 API 수준 이상이 필요합니다.

문서에 대해 선택한 API 수준이 이므로 이 문서가 표시되지 않습니다. 왼쪽 탐색 메뉴의 선택기로 문서 API 수준을 변경할 수 있습니다.

앱에 필요한 API 수준 지정에 관한 자세한 내용은 다양한 플랫폼 버전 지원을 참조하세요.

Take a short survey?
Help us improve the Android developer experience. (April 2018 — Developer Survey)