Android 開始使用Material Design

2018-08-02 18:17 更新

編寫: allenlsy - 原文: https://developer.android.com/training/material/get-started.html

要?jiǎng)?chuàng)建一個(gè) Material Design 應(yīng)用:

  1. 學(xué)習(xí) Material Design 規(guī)格標(biāo)準(zhǔn)
  2. 應(yīng)用 Material Design 主題
  3. 創(chuàng)建符合 Material Design 的 Layout 文件
  4. 定義視圖的 elevation 值來修改陰影
  5. 使用系統(tǒng)組件來創(chuàng)建列表和卡片
  6. 自定義動(dòng)畫

維護(hù)向下兼容性

你可以添加 Material Design 特性,同時(shí)保持對(duì) Android 5.0 之前版本的兼容。更多信息,請(qǐng)參見維護(hù)兼容性章節(jié)。

使用 Material Design 更新現(xiàn)有應(yīng)用

要更新現(xiàn)有應(yīng)用,使其使用 Material Design,你需要翻新你的 layout 文件來遵從 Material Design 標(biāo)準(zhǔn),并確保其包含了正確的元素高度,觸摸反饋和動(dòng)畫。

使用 Material Design 創(chuàng)建新的應(yīng)用

如果你要?jiǎng)?chuàng)建使用 Material Design 的新的應(yīng)用,Material Design 指南提供了一套跨平臺(tái)統(tǒng)一的設(shè)計(jì)。請(qǐng)遵從指南,使用新功能來進(jìn)行 Android 應(yīng)用的設(shè)計(jì)和開發(fā)。

應(yīng)用 Material 主題

要在應(yīng)用中使用 Material 主題,需要定義一個(gè)繼承于 android:Theme.Material 的 style 文件:

<!-- res/values/styles.xml -->
<resources>
  <!-- your theme inherits from the material theme -->
  <style name="AppTheme" parent="android:Theme.Material">
    <!-- theme customizations -->
  </style>
</resources>

Material 主題提供了更新后的系統(tǒng)組件,使你可以設(shè)置調(diào)色板和在觸摸和 Activity 切換時(shí)使用默認(rèn)的動(dòng)畫。更多信息,請(qǐng)參見 Material 主題 章節(jié)。

設(shè)計(jì)你的 Layouts

另外,要應(yīng)用自定義的 Material 主題,你的 layout 應(yīng)該要符合 Material 設(shè)計(jì)規(guī)范。在設(shè)計(jì) Layout 時(shí),尤其要注意一下方面:

  • 基準(zhǔn)線網(wǎng)格
  • Keyline
  • 間隙
  • 觸摸目標(biāo)的大小
  • Layout 結(jié)構(gòu)

定義視圖的 Elevation

視圖可以投射陰影, elevation 值決定了陰影的大小和繪制順序。要設(shè)定 elevation 值,請(qǐng)使用 android:elevation 屬性:

<TextView
    android:id="@+id/my_textview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/next"
    android:background="@color/white"
    android:elevation="5dp" />

新的 translationZ 屬性使得你可以設(shè)計(jì)臨時(shí)變更 elevation 的動(dòng)畫。elevation 變化在做觸摸反饋時(shí)很有用。

更多信息,請(qǐng)參見定義陰影和 Clipping 視圖章節(jié)。

創(chuàng)建列表和卡片

RecyclerView 是一個(gè)植入性更強(qiáng)的 ListView,它支持不同的 layout 類型,并可以提升性能。CardView 使得你可以在卡片內(nèi)顯示一部分內(nèi)容,并且和其他應(yīng)用保持外觀一致。以下是一段樣例代碼展示如何在 layout 中添加 CardView

<android.support.v7.widget.CardView
    android:id="@+id/card_view"
    android:layout_width="200dp"
    android:layout_height="200dp"
    card_view:cardCornerRadius="3dp">
    ...
</android.support.v7.widget.CardView>

更多信息,請(qǐng)參見列表和卡片章節(jié)。

自定義動(dòng)畫

Android 5.0 (API level 21) 包含了新的創(chuàng)建自定義動(dòng)畫 API。比如,你可以在 activity 中定義進(jìn)入和退出 activity 時(shí)的動(dòng)畫。

public class MyActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // enable transitions
        getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
        setContentView(R.layout.activity_my);
    }

    public void onSomeButtonClicked(View view) {
        getWindow().setExitTransition(new Explode());
        Intent intent = new Intent(this, MyOtherActivity.class);
        startActivity(intent,
                      ActivityOptions
                          .makeSceneTransitionAnimation(this).toBundle());
    }
}

當(dāng)你從當(dāng)前 activity 進(jìn)入另一個(gè) activity 時(shí),退出切換動(dòng)畫會(huì)被調(diào)用。

想學(xué)習(xí)更多新的動(dòng)畫 API,參見自定義動(dòng)畫章節(jié))。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)