174 lines
6.1 KiB
Plaintext
174 lines
6.1 KiB
Plaintext
page.title=Getting Started
|
|
|
|
@jd:body
|
|
|
|
<div id="tb-wrapper">
|
|
<div id="tb">
|
|
<h2>This lesson teaches you to</h2>
|
|
<ol>
|
|
<li><a href="#ApplyTheme">Apply the Material Theme</a></li>
|
|
<li><a href="#Layouts">Design Your Layouts</a></li>
|
|
<li><a href="#Depth">Specify Elevation in Your Views</a></li>
|
|
<li><a href="#ListsCards">Create Lists and Cards</a></li>
|
|
<li><a href="#Animations">Customize Your Animations</a></li>
|
|
</ol>
|
|
<h2>You should also read</h2>
|
|
<ul>
|
|
<li><a href="http://www.google.com/design/spec">Material design specification</a></li>
|
|
<li><a href="{@docRoot}design/material/index.html">Material design on Android</a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<p>To create apps with material design:</p>
|
|
|
|
<ol>
|
|
<li style="margin-bottom:10px">
|
|
Review the <a href="http://www.google.com/design/spec">material design specification</a>.</li>
|
|
<li style="margin-bottom:10px">
|
|
Apply the material <strong>theme</strong> to your app.</li>
|
|
<li style="margin-bottom:10px">
|
|
Create your <strong>layouts</strong> following material design guidelines.</li>
|
|
<li style="margin-bottom:10px">
|
|
Specify the <strong>elevation</strong> of your views to cast shadows.</li>
|
|
<li style="margin-bottom:10px">
|
|
Use system <strong>widgets</strong> for lists and cards.</li>
|
|
<li style="margin-bottom:10px">
|
|
Customize the <strong>animations</strong> in your app.</li>
|
|
</ol>
|
|
|
|
<h3>Maintain backward compatibility</h3>
|
|
|
|
<p>You can add many material design features to your app while maintaining compatibility with
|
|
versions of Android earlier than 5.0. For more information, see
|
|
<a href="{@docRoot}training/material/compatibility.html">Maintaining Compatibility</a>.</p>
|
|
|
|
<h3>Update your app with material design</h3>
|
|
|
|
<p>To update an existing app to incorporate material design, update your layouts following
|
|
material design guidelines. Also make sure to incorporate depth, touch feedback, and
|
|
animations.</p>
|
|
|
|
<h3>Create new apps with material design</h3>
|
|
|
|
<p>If you are creating a new app with material design features, the <a
|
|
href="http://www.google.com/design/spec">material design guidelines</a> provide you with a
|
|
cohesive design framework. Follow those guidelines and use the new functionality in the Android
|
|
framework to design and develop your app.</p>
|
|
|
|
|
|
<h2 id="ApplyTheme">Apply the Material Theme</h2>
|
|
|
|
<p>To apply the material theme in your app, specify a style that inherits from
|
|
<code>android:Theme.Material</code>:</p>
|
|
|
|
<pre>
|
|
<!-- res/values/styles.xml -->
|
|
<resources>
|
|
<!-- your theme inherits from the material theme -->
|
|
<style name="AppTheme" parent="android:Theme.Material">
|
|
<!-- theme customizations -->
|
|
</style>
|
|
</resources>
|
|
</pre>
|
|
|
|
<p>The material theme provides updated system widgets that let you set their color palette and
|
|
default animations for touch feedback and activity transitions. For more details, see
|
|
<a href="{@docRoot}training/material/theme.html">Using the Material Theme</a>.</p>
|
|
|
|
|
|
<h2 id="Layouts">Design Your Layouts</h2>
|
|
|
|
<p>In addition to applying and customizing the material theme, your layouts should conform to
|
|
the <a href="http://www.google.com/design/spec">material design guidelines</a>. When you design
|
|
your layouts, pay special attention to the following:</p>
|
|
|
|
<ul>
|
|
<li>Baseline grids</li>
|
|
<li>Keylines</li>
|
|
<li>Spacing</li>
|
|
<li>Touch target size</li>
|
|
<li>Layout structure</li>
|
|
</ul>
|
|
|
|
|
|
<h2 id="Depth">Specify Elevation in Your Views</h2>
|
|
|
|
<p>Views can cast shadows, and the elevation value of a view
|
|
determines the size of its shadow and its drawing order. To set the elevation of a view, use the
|
|
<code>android:elevation</code> attribute in your layouts:</p>
|
|
|
|
<pre>
|
|
<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" />
|
|
</pre>
|
|
|
|
<p>The new <code>translationZ</code> property lets you create animations that reflect temporary
|
|
changes in the elevation of a view. Elevation changes can be useful when
|
|
<a href="{@docRoot}training/material/animations.html#ViewState">responding to touch
|
|
gestures</a>.</p>
|
|
|
|
<p>For more details, see <a href="{@docRoot}training/material/shadows-clipping.html">Defining
|
|
Shadows and Clipping Views</a>.</p>
|
|
|
|
|
|
<h2 id="ListsCards">Create Lists and Cards</h2>
|
|
|
|
<p>{@link android.support.v7.widget.RecyclerView} is a more pluggable version of {@link
|
|
android.widget.ListView} that supports different layout types and provides performance improvements.
|
|
{@link android.support.v7.widget.CardView} lets you show pieces of information inside cards with
|
|
a consistent look across apps. The following code example demonstrates how to include a
|
|
{@link android.support.v7.widget.CardView} in your layout:</p>
|
|
|
|
<pre>
|
|
<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>
|
|
</pre>
|
|
|
|
<p>For more information, see <a href="{@docRoot}training/material/lists-cards.html">Creating Lists
|
|
and Cards</a>.</p>
|
|
|
|
|
|
<h2 id="Animations">Customize Your Animations</h2>
|
|
|
|
<p>Android 5.0 (API level 21) includes new APIs to create custom animations in your app.
|
|
For example, you can enable activity transitions and define an exit transition inside an
|
|
activity:</p>
|
|
|
|
<pre>
|
|
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());
|
|
}
|
|
}
|
|
</pre>
|
|
|
|
<p>When you start another activity from this activity, the exit transition is activated.</p>
|
|
|
|
<p>To learn more about the new animation APIs, see <a
|
|
href="{@docRoot}training/material/animations.html">Defining Custom Animations</a>.</p>
|