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