Skip to content

Most visited

Recently visited

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 ガイドをご覧ください。

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

WeChat で Google Developers をフォローする

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience. (Dec 2017 Android Platform & Tools Survey)