1page.title=What's New
2page.image=images/cards/samples-new_2x.png
3
4@jd:body
5
6<p>The following code samples were recently published. You can
7download them in the Android SDK Manager under the <b>SDK Samples</b> component
8for API 21.</p>
9
10<p class="note">
11  <strong>Note:</strong> The downloadable projects are designed
12   for use with Gradle and Android Studio.
13</p>
14
15<!-- NOTE TO EDITORS: add most recent samples first -->
16
17<h3 id="MediaBrowserService"><a href="/samples/MediaBrowserService/index.html">Media Browser Service</a></h3>
18
19<p>
20This sample is a simple audio media app that exposes its media
21library and provides metadata and playback controls through the new
22MediaBrowserService and MediaSession APIs from API 21.
23The sample is compatible with Android Auto and also provides a basic UI
24when not connected to a car.
25</p>
26
27<p class="note">
28  <strong>Note:</strong> This sample is compatible with <a
29  href="http://android.com/auto">Android Auto</a>.
30</p>
31
32
33<h3 id="MessagingService"><a href="/samples/MessagingService/index.html">Messaging Service</a></h3>
34
35<p>
36This sample shows a simple service that sends notifications using
37NotificationCompat. In addition to sending a notification, it also extends
38the notification with a CarExtender to make it compatible with Android Auto.
39Each unread conversation from a user is sent as a distinct notification.
40</p>
41
42<p class="note">
43  <strong>Note:</strong> This sample is compatible with <a
44  href="http://android.com/auto">Android Auto</a>.
45</p>
46
47
48<h3 id="SpeedTracker"><a href="/samples/SpeedTracker/index.html">Speed Tracker (Wear)</a></h3>
49
50<p>
51This sample uses the FusedLocation APIs of Google Play Services on Android Wear
52devices that have a hardware GPS built in. In those cases, this sample provides
53a simple screen that shows the current speed of the wearable device. User can
54set a speed limit and if the speed approaches that limit, it changes the color
55to yellow and if it exceeds the limit, it turns red. User can also enable
56recording of coordinates and when it pairs back with the phone, this data
57is synced with the phone component of the app and user can see a track
58made of those coordinates on a map on the phone.
59</p>
60
61
62<h3 id="AppRestrictionSchema"><a href="/samples/AppRestrictionSchema/index.html">AppRestrictionSchema</a></h3>
63
64<p>
65This sample shows how to use app restrictions. This application has one boolean
66restriction with a key "can_say_hello" that defines whether the only feature of this
67app (press the button to show "Hello" message) is enabled or disabled. Use
68AppRestrictionEnforcer sample to toggle the restriction.
69</p>
70
71
72<h3 id="AppRestrictionEnforcer"><a href="/samples/AppRestrictionEnforcer/index.html">AppRestrictionEnforcer</a></h3>
73
74<p>
75This sample demonstrates how to set restrictions to other apps as a profile owner.
76Use AppRestrictionSchema sample as a app with available restrictions.
77</p>
78
79
80<h3 id="DocumentCentricRelinquishIdentity"><a href="/samples/DocumentCentricRelinquishIdentity/index.html">DocumentCentricRelinquishIdentity</a></h3>
81
82<p>
83This sample shows how to relinquish identity to activities above it in the task stack.
84</p>
85
86
87<h3 id="DocumentCentricApps"><a href="/samples/DocumentCentricApps/index.html">DocumentCentricApps</a></h3>
88
89<p>
90This sample shows the basic usage of the new "Document Centric Apps" API.
91It let's you create new documents in the system overview menu and persists its
92state through reboots. If "Task per document" is checked a new task will be
93created for every new document in the overview menu.
94</p>
95
96
97<h3 id="HdrViewfinder"><a href="/samples/HdrViewfinder/index.html">HdrViewfinder</a></h3>
98
99<p>
100This demo implements a real-time high-dynamic-range camera viewfinder, by alternating
101the sensor's exposure time between two exposure values on even and odd frames, and then
102compositing together the latest two frames whenever a new frame is captured.
103</p>
104
105
106<h3 id="Interpolator"><a href="/samples/Interpolator/index.html">Interpolator</a></h3>
107
108<p>
109This sample demonstrates the use of animation interpolators and path animations for
110Material Design. It shows how an ObjectAnimator is used to animate two properties of a
111view (scale X and Y) along a path.
112</p>
113
114
115<h3 id="DrawableTinting"><a href="/samples/DrawableTinting/index.html">DrawableTinting</a></h3>
116
117<p>Sample that shows applying tinting and color filters to Drawables both programmatically
118and as Drawable resources in XML.</p>
119<p>Tinting is set on a nine-patch drawable through the "tint" and "tintMode" parameters.
120A color state list is referenced as the tint color, which defines colors for different
121states of a View (for example disabled/enabled, focused, pressed or selected).</p>
122<p>Programmatically, tinting is applied to a Drawable through its "setColorFilter" method,
123with a reference to a color and a PorterDuff blend mode. The color and blend mode can be
124changed from the UI to see the effect of different options.</p>
125
126
127<h3 id="LNotifications"><a href="/samples/LNotifications/index.html">LNotifications</a></h3>
128
129<p>
130This sample demonstrates how new features for notifications introduced in Android 5.0
131are used such as Heads-Up notifications, visibility, people, category and priority
132metadata. </p>
133
134
135<h3 id="CardView"><a href="/samples/CardView/index.html">CardView</a></h3>
136
137<p>
138This sample demonstrates how to use the CardView UI widget introduced in Android 5.0, using the support library for backward compatibility.
139</p>
140
141
142<h3 id="RecyclerView"><a href="/samples/RecyclerView/index.html">RecyclerView</a></h3>
143
144<p>
145Demonstration of using RecyclerView with a LayoutManager to create a vertical ListView.
146</p>
147
148
149<h3 id="RevealEffectBasic"><a href="/samples/RevealEffectBasic/index.html">RevealEffectBasic</a></h3>
150
151<p>
152A sample demonstrating how to perform a reveal effect for UI elements within the Material Design framework.
153</p>
154
155
156<h3 id="FloatingActionButtonBasic"><a href="/samples/FloatingActionButtonBasic/index.html">FloatingActionButtonBasic</a></h3>
157
158<p>
159This sample shows the two sizes of Floating Action Buttons and how to interact with
160them.
161</p>
162
163
164<!--
165<h3 id="">SampleName</h3>
166
167<div class="figure" style="width:220px">
168  <img src="" srcset="@2x.png 2x" alt="" height="375" />
169  <p class="img-caption">
170    <strong>Figure n.</strong> Single sentence summarizing the figure.
171  </p>
172</div>
173
174<p>
175**description**
176</p>
177-->
178
179<h3 id="JobSchedulerSample"><a href="/samples/JobScheduler/index.html">JobScheduler</a></h3>
180
181<p>
182This sample app allows the user to schedule jobs through the UI, and shows
183visual cues when the jobs are executed.
184</p>
185
186
187<h3 id="AndroidTVLeanbackSample"><a href="https://github.com/googlesamples/androidtv-leanback">AndroidTVLeanbackSample</a></h3>
188<!--
189<div class="figure" style="width:220px">
190  <img src="" srcset="@2x.png 2x" alt="" height="375" />
191  <p class="img-caption">
192    <strong>Figure n.</strong> Single sentence summarizing the figure.
193  </p>
194</div>
195-->
196
197<p>
198This sample demonstrates use of the Android TV Leanback Support Library.
199</p>
200
201<h3 id="Visual-Game-Controller"><a href="https://github.com/googlesamples/androidtv-VisualGameController">Visual-Game-Controller</a></h3>
202<!--
203<div class="figure" style="width:220px">
204  <img src="" srcset="@2x.png 2x" alt="" height="375" />
205  <p class="img-caption">
206    <strong>Figure n.</strong> Single sentence summarizing the figure.
207  </p>
208</div>
209-->
210
211<p>
212This sample displays events received from a game controller shown on the screen.
213</p>
214
215
216<h3 id="GameControllerSample"><a href="https://github.com/googlesamples/androidtv-GameController/">GameControllerSample</a></h3>
217<!--
218<div class="figure" style="width:220px">
219  <img src="" srcset="@2x.png 2x" alt="" height="375" />
220  <p class="img-caption">
221    <strong>Figure n.</strong> Single sentence summarizing the figure.
222  </p>
223</div>
224-->
225
226<p>
227This sample implements a multi-player game, demonstrating game controller input
228handling.
229</p>
230
231
232<h3 id="ClippingBasic"><a href="/samples/ClippingBasic/index.html">ClippingBasic</a></h3>
233<!--
234<div class="figure" style="width:220px">
235  <img src="" srcset="@2x.png 2x" alt="" height="375" />
236  <p class="img-caption">
237    <strong>Figure n.</strong> Single sentence summarizing the figure.
238  </p>
239</div>
240-->
241
242<p>
243This sample demonstrates clipping on a {@link android.view.View}.
244</p>
245
246<div class="figure" style="width:220px">
247  <img src="{@docRoot}samples/images/JobSchedulerSample.png"
248      srcset="{@docRoot}samples/images/JobSchedulerSample@2x.png 2x"
249      alt="" height="375" />
250  <p class="img-caption">
251    <strong>Figure 1.</strong> The JobSchedulerSample sample app.
252  </p>
253</div>
254
255
256<h3 id="ElevationDrag"><a href="/samples/ElevationDrag/index.html">ElevationDrag</a></h3>
257<!--
258<div class="figure" style="width:220px">
259  <img src="" srcset="@2x.png 2x" alt="" height="375" />
260  <p class="img-caption">
261    <strong>Figure n.</strong> Single sentence summarizing the figure.
262  </p>
263</div>
264-->
265
266<p>This sample demonstrates a drag and drop action on different shapes.
267Elevation and z-translation are used to render the shadows. The views are
268clipped using different outlines.</p>
269
270
271<h3 id="ElevationBasic"><a href="/samples/ElevationBasic/index.html">ElevationBasic</a></h3>
272<!--
273<div class="figure" style="width:220px">
274<img src="" srcset="@2x.png 2x" alt="" height="375" />
275    <p class="img-caption">
276    <strong>Figure n.</strong> Single sentence summarizing the figure.
277  </p>
278</div>
279-->
280
281<p>
282This sample demonstrates two alternative ways to move a view in the z-axis:</p>
283
284<ul>
285  <li>With a fixed elevation, using XML.</li>
286  <li>Raising the elevation when the user taps on it, using
287      <code>setTranslationZ()</code>.</li>
288</ul>
289
290
291<h3 id="ActivitySceneTransitionBasic"><a href="/samples/ActivitySceneTransitionBasic/index.html">ActivitySceneTransitionBasic</a></h3>
292<div class="figure" style="width:220px">
293  <img src="{@docRoot}samples/images/ActivitySceneTransitionBasic.png"
294      srcset="{@docRoot}samples/images/ActivitySceneTransitionBasic@2x.png 2x"
295      alt="" height="375" />
296  <p class="img-caption">
297    <strong>Figure 2.</strong> The ActivitySceneTransitionBasic sample app.
298  </p>
299  </div>
300
301<p> This sample demonstrates how to the use {@link android.app.Activity} scene
302transitions when transitioning from one activity to another. Uses a combination
303of <code>moveImage</code> and <code>changeBounds</code> to nicely transition
304from a grid of images to an activity with a large image and detail text. </p>
305
306
307<h3 id="Camera2Video"><a href="/samples/Camera2Video/index.html">Camera2Video</a></h3>
308<!--
309<div class="figure" style="width:220px">
310<img src="" srcset="@2x.png 2x" alt="" height="375" />
311    <p class="img-caption">
312    <strong>Figure n.</strong> Single sentence summarizing the figure.
313  </p>
314</div>
315-->
316
317<p>This sample demonstrates how to record video using the Camera2 API.</p>
318
319
320<h3 id="Camera2Basic"><a href="/samples/Camera2Basic/index.html">Camera2Basic</a></h3>
321
322<!--
323<div class="figure" style="width:220px">
324  <img src="" srcset="@2x.png 2x" alt="" height="375" />
325  <p class="img-caption">
326    <strong>Figure n.</strong> Single sentence summarizing the figure.
327  </p>
328</div>
329-->
330
331<p>This sample demonstrates the basic use of the Camera2 API. The sample code
332demonstrates how you can display camera preview and take pictures.</p>
333
334
335<h3 id="BasicManagedProfile"><a href="/samples/BasicManagedProfile/index.html">BasicManagedProfile</a></h3>
336<div class="figure" style="width:220px">
337  <img src="{@docRoot}samples/images/BasicManagedProfile.png"
338     srcset="{@docRoot}samples/images/BasicManagedProfile@2x.png 2x"
339     alt="" height="375" />
340  <p class="img-caption">
341    <strong>Figure 3.</strong> The BasicManagedProfile sample app.
342  </p>
343</div>
344
345<p>This sample demonstrates how to create a managed profile. You can also:</p>
346<ul>
347  <li>Enable or disable other apps, and set restrictions on them.</li>
348  <li>Configure intents to be forwarded between the primary account and the
349   managed profile.</li>
350  <li>Wipe all the data associated with the managed profile.</li>
351</ul>
352
353<p class="note"><strong>Note:</strong> There can be only one managed profile on
354  a device at a time.</p>
355
356