콘텐츠로 건너뛰기

자주 방문한 페이지

최근 방문한 페이지

navigation

호환성 유지

머티리얼 테마 및 사용자지정 액티비티 전환과 같은 일부 머티리얼 디자인 기능은 Android 5.0(API 레벨 21) 이상에서만 이용할 수 있습니다. 그러나 머티리얼 디자인을 지원하는 기기에서 실행할 경우 이러한 기능을 사용하면서도 이전 버전의 Android를 실행하는 기기와도 호환되도록 앱을 디자인할 수 있습니다.

대체 스타일 정의

머티리얼 테마를 지원하는 기기에서 해당 테마를 사용하고, 이전 버전의 Android를 실행하는 기기에서 구버전의 테마로 되돌리도록 앱을 구성할 수 있습니다.

  1. res/values/styles.xml에서 구버전의 테마에서 상속된 테마(Holo 등)를 정의합니다.
  2. res/values-v21/styles.xml에서 머티리얼 테마에서 상속된, 같은 이름을 가진 테마를 정의합니다.
  3. 매니페스트 파일에서 이 테마를 앱의 테마로 설정합니다.

참고: 앱이 머티리얼 테마를 사용하지만 이러한 방식으로 대체 테마를 제공하지 않으면 Android 5.0 이전 버전에서는 앱이 실행되지 않습니다.

대체 레이아웃 제공

머티리얼 디자인 지침에 따라 디자인한 레이아웃이 Android 5.0(API 레벨 21)에서 새로 도입된 XML 특성을 사용하지 않는 경우, 해당 레이아웃은 이전 버전의 Android에서 실행됩니다. 그렇지 않은 경우 대체 레이아웃을 제공할 수 있습니다. 또한 이전 버전의 Android에서 앱이 표시되는 방식을 사용자가 지정할 수 있는 대체 레이아웃을 제공할 수도 있습니다.

res/layout-v21/ 안에서 Android 5.0(API 레벨 21)의 레이아웃 파일을 생성하고, res/layout/ 안에서 이전 버전의 Android를 위한 대체 레이아웃 파일을 생성합니다. 예를 들어, res/layout/my_activity.xmlres/layout-v21/my_activity.xml의 대체 레이아웃입니다.

코드의 중복을 피하기 위해 res/values/ 안에서 스타일을 정의하고, 새 API에 대해 res/values-v21/에서 스타일을 수정하고, 스타일 상속을 사용하여 res/values/에서 기본 스타일을 정의하고 res/values-v21/에서 해당 스타일로부터 상속합니다.

지원 라이브러리 사용

v7 Support Libraries r21 이상에는 다음과 같은 머티리얼 디자인 기능이 포함되어 있습니다.

시스템 위젯

Theme.AppCompat 테마는 다음 위젯에 대한 머티리얼 디자인 스타일을 제공합니다.

색상표

Android v7 지원 라이브러리에서 머티리얼 디자인 스타일을 가져와서 색상표를 사용자지정하려면 Theme.AppCompat 테마 중 하나를 적용합니다.

<!-- extend one of the Theme.AppCompat themes -->
<style name="Theme.MyTheme" parent="Theme.AppCompat.Light">
    <!-- customize the color palette -->
    <item name="colorPrimary">@color/material_blue_500</item>
    <item name="colorPrimaryDark">@color/material_blue_700</item>
    <item name="colorAccent">@color/material_green_A200</item>
</style>

목록 및 카드

RecyclerViewCardView 위젯은 Android v7 지원 라이브러리를 통해 이전 버전의 Android에서 사용할 수 있지만, 다음과 같은 제약이 있습니다.

종속 사항

Android 5.0(API 레벨 21) 이전 버전에서 이러한 기능을 사용하려면 프로젝트에 Android v7 지원 라이브러리를 Gradle 종속 사항으로 포함합니다.

dependencies {
    compile 'com.android.support:appcompat-v7:21.0.+'
    compile 'com.android.support:cardview-v7:21.0.+'
    compile 'com.android.support:recyclerview-v7:21.0.+'
}

시스템 버전 확인

다음 기능은 Android 5.0(API 레벨 21) 이상에서만 사용할 수 있습니다.

이전 버전 Android와 호환성을 유지하려면, 이러한 기능을 위한 API를 호출하기 전에 런타임에 시스템 version을 확인하세요.

// Check if we're running on Android 5.0 or higher
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    // Call some material design APIs here
} else {
    // Implement this feature without material design
}

참고: 앱에서 어떤 버전의 Android를 지원할지 지정하려면 매니페스트 파일에서 android:minSdkVersionandroid:targetSdkVersion 특성을 사용하세요. Android 5.0에서 머티어리얼 디자인 기능을 사용하려면 android:targetSdkVersion 특성을 21로 설정하세요. 자세한 내용은 <uses-sdk> 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)