1page.title=使用材料主题 2 3@jd:body 4 5<div id="tb-wrapper"> 6<div id="tb"> 7<h2>本课程将向您展示如何</h2> 8<ol> 9 <li><a href="#ColorPalette">定制配色工具</a></li> 10 <li><a href="#StatusBar">定制状态栏</a></li> 11 <li><a href="#Inheritance">主题个别视图</a></li> 12</ol> 13<h2>您也应该阅读</h2> 14<ul> 15 <li><a href="http://www.google.com/design/spec">材料设计规范</a></li> 16 <li><a href="{@docRoot}design/material/index.html">Android 材料设计</a></li> 17</ul> 18</div> 19</div> 20 21 22<p>新材料主题将提供:</p> 23 24<ul> 25 <li>让您设置主题配色工具的系统小组件</li> 26 <li>适用于系统小组件的触摸反馈动画</li> 27 <li>操作行为转换动画</li> 28</ul> 29 30<p>您可使用您所控制的配色工具,按照您的品牌形象定制材料主题的外观。 31您可使用主题属性为操作栏和状态栏着色,如<a href="#fig3">图 3</a> 所示。 32</p> 33 34<p>系统小组件拥有全新的设计与触摸反馈动画。您可为您的应用定制配色工具、触摸反馈动画以及操作行为转换。 35</p> 36 37<p>材料主题的定义为:</p> 38 39<ul> 40 <li><code>@android:style/Theme.Material</code>(深色版本)</li> 41 <li><code>@android:style/Theme.Material.Light</code>(浅色版本)</li> 42 <li><code>@android:style/Theme.Material.Light.DarkActionBar</code></li> 43</ul> 44 45<p>如果要了解您可使用的材料风格,请参阅 46{@link android.R.style R.style} 的 API 参考。</p> 47 48<!-- two columns, dark/light material theme example --> 49<div style="width:700px;margin-top:25px;margin-bottom:10px"> 50<div style="float:left;width:250px;margin-left:40px;margin-right:60px;"> 51 <img src="{@docRoot}design/material/images/MaterialDark.png" width="500" height="238"> 52 <div style="width:170px;margin:0 auto"> 53 <p style="margin-top:8px;font-size:12px"><strong>图 1</strong>.深色材料主题</p> 54 </div> 55</div> 56<div style="float:left;width:250px;margin-right:0px;"> 57 <img src="{@docRoot}design/material/images/MaterialLight.png" width="500" height="238"> 58 <div style="width:170px;margin:0 auto"> 59 <p style="margin-top:8px;font-size:12px"><strong>图 2</strong>.浅色材料主题</p> 60 </div> 61</div> 62<br style="clear:left"> 63</div> 64 65<p class="note"> 66<strong>注意:</strong>材料主题仅在 Android 5.0(API 级别 21)及更高版本中提供。 67<a href="{@docRoot}tools/support-library/features.html#v7">v7 支持内容库</a>为一些小组件提供附带材料设计风格的主题,同时为配色工具定制提供支持。 68 69如果要了解更多信息,请参阅 70<a href="{@docRoot}training/material/compatibility.html">保持兼容性</a>。 71</p> 72 73 74<h2 id="ColorPalette">定制配色工具</h2> 75 76<p style="margin-bottom:30px">如果要定制主题的基色以符合您的品牌,您可在进行材料主题继承时使用主题属性定义您的定制颜色: 77</p> 78 79<pre> 80<resources> 81 <!-- inherit from the material theme --> 82 <style name="AppTheme" parent="android:Theme.Material"> 83 <!-- Main theme colors --> 84 <!-- your app branding color for the app bar --> 85 <item name="android:colorPrimary">@color/primary</item> 86 <!-- darker variant for the status bar and contextual app bars --> 87 <item name="android:colorPrimaryDark">@color/primary_dark</item> 88 <!-- theme UI controls like checkboxes and text fields --> 89 <item name="android:colorAccent">@color/accent</item> 90 </style> 91</resources> 92</pre> 93 94<div style="float:right;margin-left:25px;margin-top:20px;margin-bottom:10px" id="fig3"> 95<img src="{@docRoot}training/material/images/ThemeColors.png" width="250" height="445" /> 96<p class="img-caption" style="margin-bottom:0px"> 97<strong>图 3.</strong>定制材料主题。</p> 98</div> 99 100 101<h2 id="StatusBar">定制状态栏</h2> 102 103<p>材料主题可让您轻松定制状态栏,因此您可以指定一个符合自己品牌特色且对比度足够高、能够显示白色状态图标的颜色。 104如果要为状态栏设置定制颜色,您可在扩展材料主题时使用 <code>android:statusBarColor</code> 属性。 105 106默认情况下,<code>android:statusBarColor</code> 将继承 <code>android:colorPrimaryDark</code> 的值。 107</p> 108 109<p>您也可自行将状态栏移到后侧。例如,您想在一个照片上以透明的方式显示状态栏,同时利用细微的深色渐变以确保白色状态图标仍保持可见。 110 111如果要执行此操作,请将 <code>android:statusBarColor</code> 属性设置为 112<code>@android:color/transparent</code> 并根据需要调整窗口标志。您也可以使用 {@link android.view.Window#setStatusBarColor Window.setStatusBarColor()} 方法进行动画或淡出设置。 113 114</p> 115 116<p class="note"> 117<strong>注意:</strong>在多数情况下,状态栏与主工具栏之间应该有一个清楚的分割,您在这些栏的后侧显示全屏的丰富图像或媒体内容以及使用颜色渐变以确保图表仍保持可见的情况除外。 118 119 120</p> 121 122<p>定制导航栏和状态栏时,您可选择将导航栏和状态栏变透明或仅修改状态栏。 123在所有其他情况中,导航栏均应保持黑色。</p> 124 125 126<h2 id="Inheritance">主题个别视图</h3> 127 128<p>XML 布局定义内的元素可指定 <code>android:theme</code> 属性,而该属性将引用一个主题资源。 129此属性可修改元素以及任何子元素的主题,有助于改变界面中特定部分的主题配色工具。 130 131</p> 132