Android Material Design-Maintaining Compatibility(保持相容性)-(七),androidmaterial

來源:互聯網
上載者:User

Android Material Design-Maintaining Compatibility(保持相容性)-(七),androidmaterial

轉載請註明出處:http://blog.csdn.net/bbld_/article/details/40634829

 

一些materialdesign中的功能像material主題和自訂activity的過渡只能在Android 5.0(API層級21)或以上的系統版本中才能使用。但是你可以設計你的app去使用那些功能,無論在支援materialdesign的裝置上亦或是早期的Android版本上。

 

定義可選的樣式

你可以配置你的app去使用material design在支援它的裝置上,在早期的Android版本中使用舊的主題:

1.        定義一個主題,它繼承一箇舊的主題(像Holo),放在res/values/styles.xml。

2.        定義一個相同名字主題,繼承material主題,放在res/values-21/styles.xml。

3.        在manifest檔案中設定這個主題為你的app主題。

注意:如果你的app使用了material主題但是沒有提供一個可替代的主題,你的app將無法在Android 5.0之前的系統中運行。

 

提供可替代的布局

如果你根據設計準則不使用任何Android5.0引入的新的XML的屬性去設計你的布局,他們能在Android的早期版本上運行。否則,你可以提供可選擇的布局。你也可以提供可替代的布局,以自訂你的app看起來是在早期的Android版本上。

為Android 5.0(API層級21)或以上系統建立布局時則布局檔案放在res/layout-v21/檔案夾裡,早期Android版本的可替代的布局則放在res/layout/檔案夾裡。例如,res/layout/my_activity.xml是res/layout-v21/my_activity.xml的一個可替代的布局

為了避免重複的代碼,在res/values/裡定義你的樣式資源,為新的API修改的樣式則放在res/values-v21/檔案夾裡,並且使用樣式繼承,在res/values/中定義基本的樣式,在res/values-v21/.中繼承基本的樣式。

 

使用支援庫

v7支援庫r21及以上的版本包含以下的material design的特點:

l  當你應用Theme.AppCompat的主題時,一些控制項具有materialdesign style的特徵。

l  Theme.AppCompat具有Color palette theme屬性。

l  RecyclerView控制項顯示資料集合。

l  CardView控制項建立卡片。

l  Palette類去從圖片中提取突出的顏色。

 

系統控制項

Theme.AppCompat主題為這些控制項提供了material design styles:

l  EditText

l  Spinner

l  CheckBox

l  RadioButton

l  SwitchCompat

l  CheckedTextView

 

顏色調色盤

為了在Android v7支援庫中獲得material design styles和自訂調色盤,使用一個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版本上使用。但是有這些限制:

l  CardView回退到使用有規則的陰影通過使用額外的填充。

l  CardView不會裁剪它的子視圖,使用圓角相交。


依賴

要在早於Android5.0(API層級21)的系統中使用這些功能,需添加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.+'}

補充:Eclipse中添加依賴在前面的部落格中我已做了說明(Android Material Design-Creating Lists and Cards(建立列表和卡片)-(三))。


檢查系統版本

以下功能僅適用於Android的5.0(API等級21)以上:

l  Activity transitions(Activity的過渡轉換)

l  Touch feedback(觸摸反饋)

l  Reveal animations(顯示、揭露動畫)

l  Path-based animations(基於路徑的動畫)

l  Vector drawables(向量繪圖資源)

l  Drawable tinting(Drawable著色)

為了保持與早期Android版本的相容性,在調用這些API之前檢查系統的版本:

 

// Check if we're running on Android 5.0 or higherif (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {    // Call some material design APIs here} else {    // Implement this feature without material design}

 注意:要指定你的app所能支援的版本,使用在你的manifest檔案中android:minSdkVersion和android:targetSdkVersion屬性去聲明。要在Android 5.0中需要使用material desing的功能,設定android:targetSdkVersionattribute屬性的值為21.。更多的資訊請參閱<uses-sdk>的API文檔說明。

 

 

-----------------------------------------------------------------  Material Design系列的翻譯完結  ----------------------------------------------------------------------

 

 






聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.