とりあえず公式をみてみる.
* テーマの設定
1. Holoのようなこれまでのテーマを継承して定義する
res/values/style.xml
2. 同じ名前でテーマをMaterialテーマを継承して定義する.
res/values-v21/style.xml
3. これらのテーマを AndroidManifest.xmlでアプリに設定する.
* レイアウトの設定
21+向けのディレクトリをそれぞれ準備する
res/layout-v21/
res/values-v21/
API-21+ に対しては, 各リソースファイルを「*-v21」として新規に作成するという考え方.
これまでのUIデザインを変化させずに, 新しく OS 5.0+ の端末に対してのみマテリアルなデザインを表示させる.
その後にこう書いてる.
* サポートライブラリをセット
Theme.AppCompat を使えば いくつかのウィジェットは MaterialDesign のものを使える.
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.+'
}
EditText
Spinner
CheckBox
RadioButton
SwitchCompat
CheckedTextView
RecyclerView
CardView
Palette
完全ではないもののいくつかのウィジェットは appcompat-v7 で対応できる.
Lollipopを載せた端末の拡散具合や人気を考えると, OS4.x系端末でのマテリアルデザイン表示をしないと「マテリアルデザインに対応します(しました)」とうたいづらい.
よほどUIが凝ったアプリで無い限り, この appcompat-v7 ウィジェットを使って, これまで(API-19まで)のテーマに適用する, まずは.
/res/values/styles.xml
...
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
...
とこれまでのテーマの親にもつ.
このあと, 微調整を行い, API-19までのUIをマテリアルなかんじに仕上げていき, そのあと *-v21 のリソースを触りながら, 気にせず Lollipop端末に向けてのマテリアル化を進めていく.
と, そんな順序が王道ではないかな...
Maintaining Compatibility | Android Developers