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="#ApplyTheme">套用材料設計風格</a></li> 10 <li><a href="#Layouts">設計版面配置</a></li> 11 <li><a href="#Depth">指定視圖中的高度</a></li> 12 <li><a href="#ListsCards">建立清單和卡片</a></li> 13 <li><a href="#Animations">自訂動畫</a></li> 14</ol> 15<h2>您也應該閱讀</h2> 16<ul> 17 <li><a href="http://www.google.com/design/spec">材料設計規格</a></li> 18 <li><a href="{@docRoot}design/material/index.html">Android 上的材料設計</a></li> 19</ul> 20</div> 21</div> 22 23 24<p>如果要使用材料設計建立應用程式:</p> 25 26<ol> 27 <li style="margin-bottom:10px"> 28 請閱讀<a href="http://www.google.com/design/spec">材料設計規格</a>。</li> 29 <li style="margin-bottom:10px"> 30 對應用程式套用材料<strong>設計風格</strong>。</li> 31 <li style="margin-bottom:10px"> 32 依照材料設計指南建立<strong>版面配置</strong>。</li> 33 <li style="margin-bottom:10px"> 34 指定視圖的<strong>高度</strong>來投射出陰影。</li> 35 <li style="margin-bottom:10px"> 36 使用系統<strong>小工具</strong>製作清單和卡片。</li> 37 <li style="margin-bottom:10px"> 38 自訂應用程式中的<strong>動畫</strong>。</li> 39</ol> 40 41<h3>維持向下相容性</h3> 42 43<p>您可在應用程式中加入多種材料設計功能,同時維持與 Android 5.0 之前版本的相容性。 44如需詳細資訊,請參閱<a href="{@docRoot}training/material/compatibility.html">維持相容性</a>。 45</p> 46 47<h3>更新應用程式以納入材料設計功能</h3> 48 49<p>如要更新現有應用程式以納入材料設計功能,請依照下列材料設計指南更新版面配置。 50同時確保加入深度、輕觸回饋和動畫。 51</p> 52 53<h3>使用材料設計建立新應用程式</h3> 54 55<p>如果您要使用材料設計功能建立新應用程式,<a href="http://www.google.com/design/spec">材料設計指南</a>可以提供一致性的設計架構。 56請依照下列指南,使用 Android 架構中的新功能來設計和開發應用程式。 57</p> 58 59 60<h2 id="ApplyTheme">套用材料設計風格</h2> 61 62<p>如要在應用程式中套用材料設計風格,請指定一個繼承自 <code>android:Theme.Material</code> 的樣式: 63</p> 64 65<pre> 66<!-- res/values/styles.xml --> 67<resources> 68 <!-- your theme inherits from the material theme --> 69 <style name="AppTheme" parent="android:Theme.Material"> 70 <!-- theme customizations --> 71 </style> 72</resources> 73</pre> 74 75<p>材料設計風格提供已更新的系統小工具,可讓您設定系統小工具的色板和預設動畫,作為輕觸回饋與操作行為轉換。 76如需詳細資訊,請參閱<a href="{@docRoot}training/material/theme.html">使用材料設計風格</a>。 77</p> 78 79 80<h2 id="Layouts">設計版面配置</h2> 81 82<p>除了套用和自訂材料設計風格之外,您的版面配置也必須遵守<a href="http://www.google.com/design/spec">材料設計指南</a>。 83當您設計版面配置時,請注意下列事項: 84</p> 85 86<ul> 87<li>基準線網格</li> 88<li>邊線</li> 89<li>間距</li> 90<li>輕觸目標大小</li> 91<li>版面配置結構</li> 92</ul> 93 94 95<h2 id="Depth">指定視圖中的高度</h2> 96 97<p>檢視可以投射出陰影,因此檢視的高度值會決定陰影的大小及其繪製順序。 98如要設定視圖的高度,請在版面配置中使用 <code>android:elevation</code> 屬性: 99</p> 100 101<pre> 102<TextView 103 android:id="@+id/my_textview" 104 android:layout_width="wrap_content" 105 android:layout_height="wrap_content" 106 android:text="@string/next" 107 android:background="@color/white" 108 android:elevation="5dp" /> 109</pre> 110 111<p>您可以使用新的 <code>translationZ</code> 屬性建立動畫,來反映視圖高度的短暫變化。 112高度變化可以用來<a href="{@docRoot}training/material/animations.html#ViewState">回應輕觸手勢</a>。 113 114</p> 115 116<p>如需詳細資訊,請參閱<a href="{@docRoot}training/material/shadows-clipping.html">定義陰影和裁剪檢視</a>。 117</p> 118 119 120<h2 id="ListsCards">建立清單和卡片</h2> 121 122<p>{@link android.support.v7.widget.RecyclerView} 是一個更容易插入的 {@link 123android.widget.ListView} 版本,可支援不同的版面配置類型並提供更好的效能。{@link android.support.v7.widget.CardView} 可讓您在不同的應用程式之間以一致的外觀顯示卡片內部的資訊。 124 125下列程式碼範例示範如何在版面配置中加入 {@link android.support.v7.widget.CardView}: 126</p> 127 128<pre> 129<android.support.v7.widget.CardView 130 android:id="@+id/card_view" 131 android:layout_width="200dp" 132 android:layout_height="200dp" 133 card_view:cardCornerRadius="3dp"> 134 ... 135</android.support.v7.widget.CardView> 136</pre> 137 138<p>如需詳細資訊,請參閱<a href="{@docRoot}training/material/lists-cards.html">建立清單和卡片</a>。 139</p> 140 141 142<h2 id="Animations">自訂動畫</h2> 143 144<p>Android 5.0 (API 級別 21) 包含許多新的 API 以便在應用程式中建立自訂動畫。例如,您可以啟用操作行為轉換,並在操作行為內部定義離開轉換: 145 146</p> 147 148<pre> 149public class MyActivity extends Activity { 150 151 @Override 152 protected void onCreate(Bundle savedInstanceState) { 153 super.onCreate(savedInstanceState); 154 // enable transitions 155 getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS); 156 setContentView(R.layout.activity_my); 157 } 158 159 public void onSomeButtonClicked(View view) { 160 getWindow().setExitTransition(new Explode()); 161 Intent intent = new Intent(this, MyOtherActivity.class); 162 startActivity(intent, 163 ActivityOptions 164 .makeSceneTransitionAnimation(this).toBundle()); 165 } 166} 167</pre> 168 169<p>當您從這個操作行為開始另一個操作行為時,就會啟動離開轉換。</p> 170 171<p>如需深入了解新的動畫 API,請參閱<a href="{@docRoot}training/material/animations.html">定義自訂動畫</a>。</p> 172