私たちは Android アプリを再設計していますが、次の Android L プラットフォームとそのマテリアル スタイルを考えると、疑問が生じます: 古いデバイスをサポートする方法は何ですか? この新しい設計は 4.x デバイスで受け入れられますか?
3 に答える
Androidマテリアルデザインの互換性ドキュメントによると
リンクが削除された場合に備えて、ここで資料を再ハッシュするつもりです。これはおそらく近い将来になるでしょう.
Material テーマの場合
マテリアル テーマは、Android L Developer Preview でのみ使用できます。Android L Developer Preview を実行しているデバイスでマテリアル テーマを使用し、以前のバージョンの Android を実行しているデバイスで古いテーマを使用するようにアプリを構成するには:
古いテーマ (Holo など) から継承するテーマを res/values/styles.xml で定義します。res/values-v21/styles.xml でマテリアル テーマから継承した同じ名前のテーマを定義します。マニフェスト ファイルで、このテーマをアプリのテーマとして設定します。
レイアウトに関しては
マテリアル デザイン ガイドラインに従って設計したレイアウトが、Android L Developer Preview の新しい XML 属性を使用していない場合、それらは以前のバージョンの Android でも機能します。それ以外の場合は、別のレイアウトを提供できます。代替レイアウトを提供して、以前のバージョンの Android でのアプリの外観をカスタマイズすることもできます。
Android L Developer Preview 用のレイアウト ファイルを res/layout-v21/ 内に作成し、以前のバージョンの Android 用の代替レイアウト ファイルを res/layout/ 内に作成します。代替レイアウトのファイル名は同じです。
コードの重複を避けるために、res/values/ 内でスタイルを定義し、新しい API 用に res/values-v21/ のスタイルを変更します。
UI ウィジェットの場合
RecyclerView ウィジェットと CardView ウィジェットは Android L デベロッパー プレビュー サポート ライブラリに含まれているため、以前のバージョンの Android でも使用できますが、次の制限があります。
CardView は、追加のパディングを使用して、プログラムによるシャドウの実装にフォールバックします。CardView は、丸みを帯びた角と交差する子ビューをクリップしません。これらの制限は、Android L Developer Preview には適用されません。
最後にアニメーションについて
次の新しい API は、Android L Developer Preview でのみ使用できます。
アクティビティの遷移、タッチ フィードバック、Reveal アニメーション、パスベースのアニメーション。以前のバージョンの Android との互換性を維持するには、これらの API を呼び出す前に、実行時にシステムのバージョンを確認してください。