blob: db69412c544e0e3cd2d9fc05987a0b2b73f4e20e [file] [log] [blame]
page.title=Làm vic vi Ni dung v được
@jd:body
<div id="tb-wrapper">
<div id="tb">
<h2>Bài hc này hướng dn bn cách</h2>
<ol>
<li><a href="#DrawableTint">Nhum màu Tài nguyên V được</a></li>
<li><a href="#ColorExtract">Trích xut Màu Ni bt t mt Hình nh</a></li>
<li><a href="#VectorDrawables">To Ni dung v được Véc-tơ</a></li>
</ol>
<h2>Bn cũng nên đọc</h2>
<ul>
<li><a href="http://www.google.com/design/spec">Đặc t phong cách Material Design</a></li>
<li><a href="{@docRoot}design/material/index.html">Material Design trên Android</a></li>
</ul>
</div>
</div>
<p>Nhng kh năng sau ca ni dung v được giúp bn trin khai phong cách material design trong các ng dng ca mình:</p>
<ul>
<li>Nhum màu ni dung v được</li>
<li>Trích xut màu ni bt</li>
<li>Ni dung v được véc-tơ</li>
</ul>
<p>Bài hc này cho bn biết cách s dng nhng tính năng này trong ng dng ca mình.</p>
<h2 id="DrawableTint">Nhum màu Tài nguyên V được</h2>
<p>Vi Android 5.0 (API mc 21) và cao hơn, bn có th nhum màu nh bitmap và nh chín miếng được định nghĩa làm
mt n alpha. Bn có th nhum chúng bng tài nguyên màu hoc nhng thuc tính ch đề nhm phân gii thành các tài nguyên
màu (ví dụ, <code>?android:attr/colorPrimary</code>). Thông thường, bn ch to nhng tài sn này
mt ln và tô màu t động cho chúng để khp vi ch đề ca mình.</p>
<p>Bn có th áp dng mt màu nhum cho đối tượng {@link android.graphics.drawable.BitmapDrawable} hoc {@link
android.graphics.drawable.NinePatchDrawable} bng phương thc {@code setTint()}. Bn cũng có th
đặt màu nhum và chế độ trong b trí ca mình bng các thuc tính <code>android:tint</code> và
<code>android:tintMode</code>.</p>
<h2 id="ColorExtract">Trích xut Màu Ni bt t mt Hình nh</h2>
<p>Thư vin H tr Android r21 và cao hơn bao gm lp {@link
android.support.v7.graphics.Palette}, cho phép bn trích xut màu ni bt t mt hình nh.
Lp này trích xut nhng màu ni bt sau:</p>
<ul>
<li>Rc rỡ</li>
<li>Ti rc rỡ</li>
<li>Sáng rc rỡ</li>
<li>Lng</li>
<li>Ti lng</li>
<li>Sáng lng</li>
</ul>
<p>Để trích xut nhng màu này, hãy chuyn mt đối tượng {@link android.graphics.Bitmap} cho phương thc tĩnh
{@link android.support.v7.graphics.Palette#generate Palette.generate()} trong
lung chy ngm nơi bn ti hình nh ca mình. Nếu bn không th s dng lung đó, hãy gi phương thc
{@link android.support.v7.graphics.Palette#generateAsync Palette.generateAsync()} và
cung cp mt trình nghe.</p>
<p>Bn có th truy xut màu ni bt t hình nh bng cách s dng các phương thc getter trong lp
<code>Palette</code> chẳng hạn như <code>Palette.getVibrantColor</code>.</p>
<p>Để s dng lp {@link android.support.v7.graphics.Palette} trong d án ca mình, hãy thêm
<a href="{@docRoot}sdk/installing/studio-build.html#dependencies">Phn ph thuc Gradle</a> sau vào
mô-đun ng dng ca bn:</p>
<pre>
dependencies {
...
compile 'com.android.support:palette-v7:21.0.0'
}
</pre>
<p>Để biết thêm thông tin, hãy xem tài liu tham kho API cho lp
{@link android.support.v7.graphics.Palette}.</p>
<h2 id="VectorDrawables">To Ni dung v được Véc-tơ</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>Đồ ha Véc-tơ Android</p>
</div>
</a>
<p>Trong Android 5.0 (API mc 21) và cao hơn, bn có th định nghĩa ni dung v được véc-tơ co giãn mà không làm mt
độ sc nét. Bn ch cn mt tp tài sn cho mt hình nh véc-tơ, đối lp vi tp tài sn cho
tng mt độ màn hình trong trường hp hình nh bitmap. Để to mt hình nh véc-tơ, bn định nghĩa chi tiết
ca hình nh trong phn t XML <code>&lt;vector&gt;</code>.</p>
<p>Ví d sau định nghĩa hình nh véc-tơ có hình mt trái tim:</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>Hình nh véc-tơ được biu din trong Android dưới dng đối tượng {@link android.graphics.drawable.VectorDrawable}
. Để biết thêm thông tin v cú pháp <code>pathData</code>, hãy xem tham chiếu <a href="http://www.w3.org/TR/SVG11/paths.html#PathData">Đường dẫn SVG</a>. Để biết thêm thông tin
v vic to hiu ng hot hình các thuc tính ca ni dung v được véc-tơ, hãy xem
<a href="{@docRoot}training/material/animations.html#AnimVector">To Hiu ng Hot hình Ni dung v được Véc-tơ</a>.</p>