page.title=호환성 유지 @jd:body
머티리얼 테마 및 사용자지정 액티비티 전환과 같은 일부 머티리얼 디자인 기능은 Android 5.0(API 레벨 21) 이상에서만 이용할 수 있습니다. 그러나 머티리얼 디자인을 지원하는 기기에서 실행할 경우 이러한 기능을 사용하면서도 이전 버전의 Android를 실행하는 기기와도 호환되도록 앱을 디자인할 수 있습니다.
머티리얼 테마를 지원하는 기기에서 해당 테마를 사용하고, 이전 버전의 Android를 실행하는 기기에서 구버전의 테마로 되돌리도록 앱을 구성할 수 있습니다.
res/values/styles.xml
에서 구버전의 테마에서 상속된 테마(Holo 등)를 정의합니다.res/values-v21/styles.xml
에서 머티리얼 테마에서 상속된, 같은 이름을 가진 테마를 정의합니다.참고: 앱이 머티리얼 테마를 사용하지만 이러한 방식으로 대체 테마를 제공하지 않으면 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.xml
은
res/layout-v21/my_activity.xml
의 대체 레이아웃입니다.
코드의 중복을 피하기 위해 res/values/
안에서 스타일을 정의하고, 새 API에 대해 res/values-v21/
에서 스타일을 수정하고, 스타일 상속을 사용하여 res/values/
에서 기본 스타일을 정의하고 res/values-v21/
에서 해당 스타일로부터 상속합니다.
v7 Support Libraries r21 이상에는 다음과 같은 머티리얼 디자인 기능이 포함되어 있습니다.
Theme.AppCompat
테마 중 하나를 적용할 때 일부 시스템 위젯에
대한 머티리얼 디자인 스타일Theme.AppCompat
테마의 색상표 테마 특성
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>
{@link android.support.v7.widget.RecyclerView} 및 {@link android.support.v7.widget.CardView} 위젯은 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를 호출하기 전에 런타임에 시스템 {@link android.os.Build.VERSION#SDK_INT 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:minSdkVersion
및 android:targetSdkVersion
특성을 사용하세요.
Android 5.0에서 머티어리얼 디자인 기능을 사용하려면 android:targetSdkVersion
특성을 21
로 설정하세요.
자세한 내용은 <uses-sdk> API 가이드를 참조하세요.