Home | History | Annotate | Download | only in material
      1 page.title=Como trabalhar com desenhveis
      2 
      3 @jd:body
      4 
      5 <div id="tb-wrapper">
      6 <div id="tb">
      7 <h2>Esta lio ensina a</h2>
      8 <ol>
      9   <li><a href="#DrawableTint">Colorir recursos desenhveis</a></li>
     10   <li><a href="#ColorExtract">Extrair cores proeminentes de uma imagem</a></li>
     11   <li><a href="#VectorDrawables">Criar desenhveis de vetor</a></li>
     12 </ol>
     13 <h2>Voc tambm deve ler</h2>
     14 <ul>
     15   <li><a href="http://www.google.com/design/spec">Especificaes do Material Design</a></li>
     16   <li><a href="{@docRoot}design/material/index.html">Material Design no Android</a></li>
     17 </ul>
     18 </div>
     19 </div>
     20 
     21 <p>As seguintes capacidades dos desenhveis ajudam na implementao do Material Design nos aplicativos:</p>
     22 
     23 <ul>
     24 <li>Tingimento desenhvel</li>
     25 <li>Extrao de cor proeminente</li>
     26 <li>Desenhveis de vetor</li>
     27 </ul>
     28 
     29 <p>Esta lio mostra como usar esses recursos no seu aplicativo.</p>
     30 
     31 
     32 <h2 id="DrawableTint">Colorir recursos desenhveis</h2>
     33 
     34 <p>Com o Android 5.0 (API de nvel 21) e posteriores, voc pode colorir bitmaps e nine-patches definidos como
     35 mscaras alfa. Voc pode colori-los com recursos de cor ou atributos de tema que determinam os recursos
     36 de cor (por exemplo, <code>?android:attr/colorPrimary</code>). Normalmente, voc cria esses ativos
     37 somente uma vez e colore-os automaticamente para combinar com seu tema.</p>
     38 
     39 <p>Voc pode aplicar um tingimento aos objetos {@link android.graphics.drawable.BitmapDrawable} ou {@link
     40 android.graphics.drawable.NinePatchDrawable} com o mtodo {@code setTint()}. Voc tambm
     41 pode configurar a cor e o modo do tingimento nos layouts com os atributos <code>android:tint</code> e
     42 <code>android:tintMode</code>.</p>
     43 
     44 
     45 <h2 id="ColorExtract">Extrair cores proeminentes de uma imagem</h2>
     46 
     47 <p>A Biblioteca de Suporte r21 do Android e posteriores incluem a classe {@link
     48 android.support.v7.graphics.Palette}, que permite a extrao de cores proeminentes de uma imagem.
     49 Essa classe extrai as seguintes cores proeminentes:</p>
     50 
     51 <ul>
     52 <li>Vibrante</li>
     53 <li>Escuro vibrante</li>
     54 <li>Claro vibrante</li>
     55 <li>Suave</li>
     56 <li>Escuro suave</li>
     57 <li>Claro suave</li>
     58 </ul>
     59 
     60 <p>Para extrair essas cores, passe um objeto {@link android.graphics.Bitmap} para o mtodo esttico
     61 {@link android.support.v7.graphics.Palette#generate Palette.generate()} no encadeamento do segundo
     62 plano em que voc carrega as imagens. Se voc no puder usar aquele encadeamento, chame o mtodo
     63 {@link android.support.v7.graphics.Palette#generateAsync Palette.generateAsync()} e fornea um escutador
     64 como alternativa.</p>
     65 
     66 <p>Voc pode recuperar as cores proeminentes da imagem usando mtodos de obteno na classe
     67 <code>Palette</code>, como <code>Palette.getVibrantColor</code>.</p>
     68 
     69 <p>Para usar a classe {@link android.support.v7.graphics.Palette} no projeto, adicione a seguinte
     70 <a href="{@docRoot}sdk/installing/studio-build.html#dependencies">dependncia do Gradle</a> ao
     71 mdulo do aplicativo:</p>
     72 
     73 <pre>
     74 dependencies {
     75     ...
     76     compile 'com.android.support:palette-v7:21.0.0'
     77 }
     78 </pre>
     79 
     80 <p>Para obter mais informaes, consulte a referncia de API para a classe {@link android.support.v7.graphics.Palette}
     81 .</p>
     82 
     83 
     84 <h2 id="VectorDrawables">Criar desenhveis de vetor</h2>
     85 
     86 <!-- video box -->
     87 <a class="notice-developers-video" href="https://www.youtube.com/watch?v=wlFVIIstKmA" style="margin-top:18px">
     88 <div>
     89     <h3>Vdeos</h3>
     90     <p>Grficos de vetor do Android</p>
     91 </div>
     92 </a>
     93 
     94 <p>No Android 5.0 (API de nvel 21) e posteriores, voc pode definir desenhveis de vetor que so dimensionveis
     95 sem perder definio. Voc precisa apenas de um arquivo de ativos para uma imagem de vetor, em vez de um arquivo de ativos
     96 para cada densidade de tela no caso de imagens de bitmap. Para criar uma imagem de vetor, defina os detalhes
     97 da forma dentro de um elemento XML <code>&lt;vector&gt;</code>.</p>
     98 
     99 <p>O exemplo a seguir define uma imagem de vetor com a forma de um corao:</p>
    100 
    101 <pre>
    102 &lt;!-- res/drawable/heart.xml -->
    103 &lt;vector xmlns:android="http://schemas.android.com/apk/res/android"
    104     &lt;!-- intrinsic size of the drawable -->
    105     android:height="256dp"
    106     android:width="256dp"
    107     &lt;!-- size of the virtual canvas -->
    108     android:viewportWidth="32"
    109     android:viewportHeight="32">
    110 
    111   &lt;!-- draw a path -->
    112   &lt;path android:fillColor="#8fff"
    113       android:pathData="M20.5,9.5
    114                         c-1.955,0,-3.83,1.268,-4.5,3
    115                         c-0.67,-1.732,-2.547,-3,-4.5,-3
    116                         C8.957,9.5,7,11.432,7,14
    117                         c0,3.53,3.793,6.257,9,11.5
    118                         c5.207,-5.242,9,-7.97,9,-11.5
    119                         C25,11.432,23.043,9.5,20.5,9.5z" />
    120 &lt;/vector>
    121 </pre>
    122 
    123 <p>Imagens de vetor so representadas no Android como objetos {@link android.graphics.drawable.VectorDrawable}
    124 . Para obter mais informaes sobre a sintaxe <code>pathData</code>, consulte a <a href="http://www.w3.org/TR/SVG11/paths.html#PathData">Referncia do caminho SVG</a>. Para obter informaes sobre
    125 como animar propriedades de desenhveis de vetor, consulte
    126 <a href="{@docRoot}training/material/animations.html#AnimVector">Animar desenhveis de vetor</a>.</p>
    127