Home | History | Annotate | Download | only in material
      1 page.title=Bekerja dengan Drawable
      2 
      3 @jd:body
      4 
      5 <div id="tb-wrapper">
      6 <div id="tb">
      7 <h2>Pelajaran ini mengajarkan Anda cara</h2>
      8 <ol>
      9   <li><a href="#DrawableTint">Mewarnai Sumber Daya Drawable</a></li>
     10   <li><a href="#ColorExtract">Mengekstrak Warna Mencolok dari Gambar</a></li>
     11   <li><a href="#VectorDrawables">Membuat Drawable Vektor</a></li>
     12 </ol>
     13 <h2>Anda juga harus membaca</h2>
     14 <ul>
     15   <li><a href="http://www.google.com/design/spec">Spesifikasi desain bahan</a></li>
     16   <li><a href="{@docRoot}design/material/index.html">Desain bahan di Android</a></li>
     17 </ul>
     18 </div>
     19 </div>
     20 
     21 <p>Kemampuan berikut untuk drawable membantu Anda mengimplementasikan desain bahan dalam aplikasi Anda:</p>
     22 
     23 <ul>
     24 <li>Pewarnaan drawable</li>
     25 <li>Ekstraksi warna mencolok</li>
     26 <li>Drawable vektor</li>
     27 </ul>
     28 
     29 <p>Pelajaran ini menampilkan cara menggunakan fitur-fitur ini dalam aplikasi Anda.</p>
     30 
     31 
     32 <h2 id="DrawableTint">Mewarnai Sumber Daya Drawable</h2>
     33 
     34 <p>Dengan Android 5.0 (API level 21) ke atas, Anda bisa mewarnai bitmap dan sembilan-tambalan yang didefinisikan sebagai
     35 alpha-mask. Anda bisa mewarnainya dengan sumber daya warna atau atribut tema yang mencocokkan ke
     36 sumber daya warna (misalnya, <code>?android:attr/colorPrimary</code>). Biasanya, Anda membuat aset ini
     37 hanya sekali dan mewarnainya secara otomatis agar cocok dengan tema Anda.</p>
     38 
     39 <p>Anda bisa menerapkan warna ke objek {@link android.graphics.drawable.BitmapDrawable} atau {@link
     40 android.graphics.drawable.NinePatchDrawable} dengan metode {@code setTint()}. Anda juga bisa
     41 mengatur warna dan mode dalam layout dengan atribut <code>android:tint</code> dan
     42 <code>android:tintMode</code>.</p>
     43 
     44 
     45 <h2 id="ColorExtract">Mengekstrak Warna Mencolok dari Gambar</h2>
     46 
     47 <p>Android Support Library r21 ke atas menyertakan kelas {@link
     48 android.support.v7.graphics.Palette}, yang memungkinkan Anda mengekstrak warna mencolok dari gambar.
     49 Kelas ini mengekstrak warna mencolok berikut:</p>
     50 
     51 <ul>
     52 <li>Menyala</li>
     53 <li>Menyala pekat</li>
     54 <li>Menyala pucat</li>
     55 <li>Pudar</li>
     56 <li>Pudar pekat</li>
     57 <li>Pudar pucat</li>
     58 </ul>
     59 
     60 <p>Untuk mengekstrak warna-warna ini, teruskan objek {@link android.graphics.Bitmap} ke
     61 metode statis {@link android.support.v7.graphics.Palette#generate Palette.generate()} dalam
     62 thread latar belakang tempat Anda memuat gambar. Jika Anda tidak bisa menggunakan thread itu, panggil metode
     63 {@link android.support.v7.graphics.Palette#generateAsync Palette.generateAsync()} dan
     64 sediakan listener sebagai gantinya.</p>
     65 
     66 <p>Anda bisa mengambil warna mencolok dari gambar dengan metode getter di kelas
     67 <code>Palette</code>, misalnya <code>Palette.getVibrantColor</code>.</p>
     68 
     69 <p>Untuk menggunakan kelas {@link android.support.v7.graphics.Palette} dalam proyek Anda, tambahkan
     70 <a href="{@docRoot}sdk/installing/studio-build.html#dependencies">dependensi Gradle</a> berikut ke
     71 modul aplikasi Anda:</p>
     72 
     73 <pre>
     74 dependencies {
     75     ...
     76     compile 'com.android.support:palette-v7:21.0.0'
     77 }
     78 </pre>
     79 
     80 <p>Untuk informasi selengkapnya, lihat referensi API untuk kelas {@link android.support.v7.graphics.Palette}.
     81 </p>
     82 
     83 
     84 <h2 id="VectorDrawables">Membuat Drawable Vektor</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>Video</h3>
     90     <p>Grafis Vektor Android</p>
     91 </div>
     92 </a>
     93 
     94 <p>Di Android 5.0 (API Level 21) ke atas, Anda bisa mendefinisikan drawable vektor, yang berubah skala tanpa
     95 kehilangan definisi. Anda hanya memerlukan satu file aset per gambar vektor, bukan file aset untuk
     96 setiap densitas layar seperti pada gambar bitmap. Untuk membuat gambar vektor, Anda mendefinisikan detail
     97 bentuknya dalam sebuah elemen XML <code>&lt;vector&gt;</code>.</p>
     98 
     99 <p>Contoh berikut mendefinisikan gambar vektor berbentuk hati:</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>Gambar vektor direpresentasikan di Android sebagai objek {@link android.graphics.drawable.VectorDrawable}.
    124  Untuk informasi selengkapnya tentang sintaks <code>pathData</code>, lihat <a href="http://www.w3.org/TR/SVG11/paths.html#PathData">Referensi Path SVG</a>. Untuk informasi selengkapnya
    125 tentang menganimasikan properti drawable vektor, lihat
    126 <a href="{@docRoot}training/material/animations.html#AnimVector">Menganimasikan Drawable Vektor</a>.</p>
    127