コンテンツに移動

よくアクセスするページ

最近アクセスしたページ

navigation

互換性の維持

マテリアル テーマやカスタムのアクティビティ遷移など、マテリアル デザインの一部の機能は Android5.0(API レベル21)以降のみで利用できます。 ただし、マテリアル デザインをサポートし、以前のバージョンの Android を実行している端末と互換性がある端末でこれらの機能が実行されている場合は、機能を使用できるようにアプリを設計することが可能です。

別のスタイルを定義する

マテリアル テーマをサポートしている端末ではマテリアル テーマを使用するようにアプリを構成できますが、同時に次のようにして以前のバージョンの Android を実行する端末向けに以前のテーマに戻すことができます。

  1. res/values/styles.xml で、以前のテーマ(Holo など)から継承するテーマを定義します。
  2. res/values-v21/styles.xml で、マテリアル テーマから継承するテーマを上記と同じ名前で定義します。
  3. マニフェスト ファイルでこのテーマをアプリのテーマとして設定します。

注: この方法で別のテーマを用意せずマテリアル テーマだけを使う場合、そのアプリは 5.0 よりも前のバージョンの Android では実行できません。

別のレイアウトを提供する

マテリアル デザインのガイドラインに沿って設計したレイアウトでも、Android 5.0(API レベル 21)で導入された新しい XML 属性を一切使用していない場合は、以前のバージョンの Android でも問題なく表示されます。 新しい XML 属性を使用している場合は、別のレイアウトを用意できます。以前のバージョンの Android でアプリが表示される方法をカスタマイズする目的で別のレイアウトを用意することも可能です。

Android 5.0(API レベル 21)向けのレイアウト ファイルを res/layout-v21/ に作成し、以前のバージョンの Android 向けの別のレイアウト ファイルを res/layout/ に作成します。 たとえば、res/layout/my_activity.xmlres/layout-v21/my_activity.xml の代替レイアウトになります。

コードの重複を避けるには、res/values/ でスタイルを定義して res/values-v21/ で新しい API 用にスタイルを修正します。それからスタイル継承を用いて、基本スタイルを res/values/ で定義して、そのスタイルを res/values-v21/ で継承します。

サポート ライブラリを使用する

v7 サポート ライブラリ 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>

リストとカード

RecyclerView ウィジェットや CardView ウィジェットは Android v7 サポート ライブラリを通じて以前のバージョンの Android でも使用できますが、次のような制限があります。

依存関係

5.0(API レベル 21)より前のバージョンの Android でこれらの機能を使用するには、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:minSdkVersion 属性と android:targetSdkVersion 属性を使用します。 Android 5.0 でマテリアル デザインの機能を使用するには、android:targetSdkVersion 属性を 21 に設定します。 詳細については、<uses-sdk> API ガイドをご覧ください。

このサイトでは、ユーザーが選択したサイトの言語と表示設定を保存する目的で Cookie を使用しています。

Android デベロッパー向けの最新情報やヒントを入手して、Google Play での成功を手に入れましょう。

* 必須

送信しました

WeChat で Google Developers をフォローする

このサイトをで表示しますか?

ページの表示言語としてを選択しましたが、このサイトの言語はに設定されています。

言語設定を変更してこのサイトをで表示しますか?言語設定を変更する場合は、各ページの下にある言語メニューを使用してください。

このクラスには、API レベル 以上が必要です。

API レベル が選択されているため、このドキュメントは非表示になっています。左のナビゲーションの上にあるセレクタを使って、ドキュメントの API レベルを変更できます。

アプリに必要な API レベルを指定する方法について、詳しくは異なるプラットフォーム バージョンのサポートをご覧ください。

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