來自:http://www.csdn.net/article/2014-11-21/2822753-material-design-libs/1android
介於擬物和扁平之間的Material Design自面世以來,便引發了不少人的關注與思考,就此產生的討論也不絕於耳。本文詳細介紹了在Android開發者圈子裏頗受青睞的十個 Material Design開源項目,從示例、FAB、菜單、動畫、Ripple到Dialog,看被稱爲「Google第一次在設計語言和規範上超越了Apple」的 Material Design是如何逐漸成爲App的一種全新設計標準。git
1. MaterialDesignLibrarygithub
在衆多新晉庫中,MaterialDesignLibrary能夠說是頗受開發者矚目的一個控件效果庫,可以讓開發者在Android 2.2系統上使用Android 5.0才支持的控件效果,好比扁平、矩形、浮動按鈕,複選框以及各式各樣的進度指示器等。後端
除上述以外,MaterialDesignLibrary還擁有SnackBar、Dialog、Color selector組件,可很是便捷地對應用界面進行設置。設計模式
進度指示器樣式效果設置: app
Dialog:編輯器
Dialog dialog = new Dialog(Context context,String title, String message); dialog.show();
2. RippleEffectide
由來自法蘭西的Robin Chutaux開發的RippleEffect基於MIT許可協議開源,可以在Android API 9+上實現Material Design,爲開發者提供了一種極爲簡易的方式來建立帶有可擴展視圖的header視圖,而且容許最大程度上的自定製。工具
用法(在XML文件中聲明一個RippleView):佈局
<com.andexert.library.RippleView android:id="@+id/more" android:layout_width="?android:actionBarSize" android:layout_height="?android:actionBarSize" android:layout_toLeftOf="@+id/more2" android:layout_margin="5dp" ripple:rv_centered="true"> <ImageView android:layout_width="?android:actionBarSize" android:layout_height="?android:actionBarSize" android:src="@android:drawable/ic_menu_edit" android:layout_centerInParent="true" android:padding="10dp" android:background="@android:color/holo_blue_dark"/> </com.andexert.library.RippleView>
隨着Material Design的到來,AppCompat v21也爲開發者提供了Material Design的控件外觀支持,其中就包括EditText,但卻並很差用,沒有設置顏色的API,也沒有任何Google Material Design Spec中提到的特性。因而,來自國內的開發者「扔物線」開發了MaterialEditText庫,直接繼承EditText,無需修改Java文件即 能實現自定義控件顏色。
自定義Base Color:
app:baseColor="#0056d3"
自定義Error Color:
app:maxCharacters="10"
app:errorColor="#ddaa00"
Android-LollipopShowcase是由來自奧地利的移動、後端及Web開發者Mike Penz所開發的演示應用,集中演示了新Material Design中全部的UI效果,以及Android Lollipop中其餘很是酷炫的特性元素,好比Toolbar、RecyclerView、ActionBarDrawerToggle、 Floating Action Button(FAB)、Android Compat Theme等。
5. MaterialList
MaterialList是一個可以幫助全部Android開發者獲取谷歌UI設計規範中新增的CardView(卡片視圖)的開源庫,支持 Android 2.3+系統。做爲ListView的擴展,MaterialList能夠接收、存儲卡片列表,並根據它們的Android風格和設計模式進行展現。此 外,開發者還能夠建立專屬於本身的卡片佈局,並輕鬆將其添加到CardList中。
使用過程代碼,在佈局中聲明MaterialListView:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin"> <com.dexafree.materiallistviewexample.view.MaterialListView android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/material_listview"/> </RelativeLayout>
6. android-floating-action-button
Floating Action Button(FAB)是衆多專家大牛針對Material Design討論比較細化的一個點,經過圓形元素與分割線、卡片、各類Bar的直線造成鮮明對比,並使用色彩設定中鮮豔的輔色,帶來更具突破性的視覺效 果。也正因如此,在Github上,有着許多與FAB相關的開源項目,基於Material Design規範的開源Android浮動Action Button控件android-floating-action-button即是其中之一。
其主要特性以下:
7. android-ui
android-ui是Android UI組件類庫,支持Android API 14+,包含了ActionView、RevealColorView等UI組件。其中,ActionView可以使Action動做顯示動畫效果,而 RevealColorView則帶來了Android 5.0中的圓形顯示/隱藏動畫體驗。
Material Menu爲開發者帶來了很是酷炫的Android菜單、返回、刪除以及檢查按鈕變形,徹底控制動畫,併爲開發者提供了兩種MaterialMenuDrawable包裝。
自定義顏色等操做:
// change color MaterialMenu.setColor(int color) // change transformation animation duration MaterialMenu.setTransformationDuration(int duration) // change pressed animation duration MaterialMenu.setPressedDuration(int duration) // change transformation interpolator MaterialMenu.setInterpolator(Interpolator interpolator) // set RTL layout support MaterialMenu.setRTLEnabled(boolean enabled)
9. Android-ObservableScrollView
Android-ObservableScrollView是一款用於在滾動視圖中觀測滾動事件的Android庫。它可以垂手可得地與 Android 5.0 Lollipop引進的工具欄(Toolbar)進行交互,還能夠幫助開發者實現擁有Material Design應用視覺體驗的界面外觀,支持ListView、ScrollView、WebView、RecyclerView、GridView組件。
交互代碼回調:
@Override
public void onUpOrCancelMotionEvent(ScrollState scrollState) { ActionBar ab = getSupportActionBar(); if (scrollState == ScrollState.UP) { if (ab.isShowing()) { ab.hide(); } } else if (scrollState == ScrollState.DOWN) { if (!ab.isShowing()) { ab.show(); } } }
最後,再來介紹一下Google Material Design規範的官方開源圖標集Material Design Icons。良心Google開源了包括Material Design系統圖標包在內的750個字形,涵蓋動做、音視頻、通訊、內容、編輯器、文件、硬件、圖像、地圖、導航、通知、社交等各個方面,適用於 Web、Android和iOS應用開發,絕對是開發者及設計師必備的資源。
圖標格式主要包括: