page.title=Working with Drawables

@jd:body

<div id="tb-wrapper">
<div id="tb">
<h2>This lesson teaches you to</h2>
<ol>
  <li><a href="#DrawableTint">Tint Drawable Resources</a></li>
  <li><a href="#ColorExtract">Extract Prominent Colors from an Image</a></li>
  <li><a href="#VectorDrawables">Create Vector Drawables</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>The following capabilities for drawables help you implement material design in your apps:</p>

<ul>
<li>Drawable tinting</li>
<li>Prominent color extraction</li>
<li>Vector drawables</li>
</ul>

<p>This lesson shows you how to use these features in your app.</p>


<h2 id="DrawableTint">Tint Drawable Resources</h2>

<p>With Android 5.0 (API level 21) and above, you can tint bitmaps and nine-patches defined as
alpha masks. You can tint them with color resources or theme attributes that resolve to color
resources (for example, <code>?android:attr/colorPrimary</code>). Usually, you create these assets
only once and color them automatically to match your theme.</p>

<p>You can apply a tint to {@link android.graphics.drawable.BitmapDrawable} or {@link
android.graphics.drawable.NinePatchDrawable} objects with the {@code setTint()} method. You can
also set the tint color and mode in your layouts with the <code>android:tint</code> and
<code>android:tintMode</code> attributes.</p>


<h2 id="ColorExtract">Extract Prominent Colors from an Image</h2>

<p>The Android Support Library r21 and above includes the {@link
android.support.v7.graphics.Palette} class, which lets you extract prominent colors from an image.
This class extracts the following prominent colors:</p>

<ul>
<li>Vibrant</li>
<li>Vibrant dark</li>
<li>Vibrant light</li>
<li>Muted</li>
<li>Muted dark</li>
<li>Muted light</li>
</ul>

<p>To extract these colors, pass a {@link android.graphics.Bitmap} object to the
{@link android.support.v7.graphics.Palette#generate Palette.generate()} static method in the
background thread where you load your images. If you can't use that thread, call the
{@link android.support.v7.graphics.Palette#generateAsync Palette.generateAsync()} method and
provide a listener instead.</p>

<p>You can retrieve the prominent colors from the image using the getter methods in the
<code>Palette</code> class, such as <code>Palette.getVibrantColor</code>.</p>

<p>To use the {@link android.support.v7.graphics.Palette} class in your project, add the following
<a href="{@docRoot}sdk/installing/studio-build.html#dependencies">Gradle dependency</a> to your
app's module:</p>

<pre>
dependencies {
    ...
    compile 'com.android.support:palette-v7:21.0.0'
}
</pre>

<p>For more information, see the API reference for the {@link android.support.v7.graphics.Palette}
class.</p>


<h2 id="VectorDrawables">Create Vector Drawables</h2>

<!-- video box -->
<a class="notice-developers-video"
   href="https://www.youtube.com/watch?v=wlFVIIstKmA"
   style="margin-top:18px">
<div>
    <h3>Video</h3>
    <p>Android Vector Graphics</p>
</div>
</a>

<p>In Android 5.0 (API Level 21) and above, you can define vector drawables, which scale without
losing definition. You need only one asset file for a vector image, as opposed to an asset file for
each screen density in the case of bitmap images. To create a vector image, you define the details
of the shape inside a <code>&lt;vector&gt;</code> XML element.</p>

<p>The following example defines a vector image with the shape of a heart:</p>

<pre>
&lt;!-- res/drawable/heart.xml -->
&lt;vector xmlns:android="http://schemas.android.com/apk/res/android"
    &lt;!-- intrinsic size of the drawable -->
    android:height="256dp"
    android:width="256dp"
    &lt;!-- size of the virtual canvas -->
    android:viewportWidth="32"
    android:viewportHeight="32">

  &lt;!-- draw a path -->
  &lt;path android:fillColor="#8fff"
      android:pathData="M20.5,9.5
                        c-1.955,0,-3.83,1.268,-4.5,3
                        c-0.67,-1.732,-2.547,-3,-4.5,-3
                        C8.957,9.5,7,11.432,7,14
                        c0,3.53,3.793,6.257,9,11.5
                        c5.207,-5.242,9,-7.97,9,-11.5
                        C25,11.432,23.043,9.5,20.5,9.5z" />
&lt;/vector>
</pre>

<p>Vector images are represented in Android as {@link android.graphics.drawable.VectorDrawable}
objects. For more information about the <code>pathData</code> syntax, see the <a
href="http://www.w3.org/TR/SVG11/paths.html#PathData">SVG Path reference</a>. For more information
about animating the properties of vector drawables, see
<a href="{@docRoot}training/material/animations.html#AnimVector">Animating Vector Drawables</a>.</p>
