page.title=Làm việc với Nội dung vẽ được @jd:body

Bài học này hướng dẫn bạn cách

  1. Nhuộm màu Tài nguyên Vẽ được
  2. Trích xuất Màu Nổi bật từ một Hình ảnh
  3. Tạo Nội dung vẽ được Véc-tơ

Bạn cũng nên đọc

Những khả năng sau của nội dung vẽ được giúp bạn triển khai phong cách material design trong các ứng dụng của mình:

Bài học này cho bạn biết cách sử dụng những tính năng này trong ứng dụng của mình.

Nhuộm màu Tài nguyên Vẽ được

Với Android 5.0 (API mức 21) và cao hơn, bạn có thể nhuộm màu ảnh bitmap và ảnh chín miếng được định nghĩa làm mặt nạ alpha. Bạn có thể nhuộm chúng bằng tài nguyên màu hoặc những thuộc tính chủ đề nhằm phân giải thành các tài nguyên màu (ví dụ, ?android:attr/colorPrimary). Thông thường, bạn chỉ tạo những tài sản này một lần và tô màu tự động cho chúng để khớp với chủ đề của mình.

Bạn có thể áp dụng một màu nhuộm cho đối tượng {@link android.graphics.drawable.BitmapDrawable} hoặc {@link android.graphics.drawable.NinePatchDrawable} bằng phương thức {@code setTint()}. Bạn cũng có thể đặt màu nhuộm và chế độ trong bố trí của mình bằng các thuộc tính android:tintandroid:tintMode.

Trích xuất Màu Nổi bật từ một Hình ảnh

Thư viện Hỗ trợ Android r21 và cao hơn bao gồm lớp {@link android.support.v7.graphics.Palette}, cho phép bạn trích xuất màu nổi bật từ một hình ảnh. Lớp này trích xuất những màu nổi bật sau:

Để trích xuất những màu này, hãy chuyển một đối tượng {@link android.graphics.Bitmap} cho phương thức tĩnh {@link android.support.v7.graphics.Palette#generate Palette.generate()} trong luồng chạy ngầm nơi bạn tải hình ảnh của mình. Nếu bạn không thể sử dụng luồng đó, hãy gọi phương thức {@link android.support.v7.graphics.Palette#generateAsync Palette.generateAsync()} và cung cấp một trình nghe.

Bạn có thể truy xuất màu nổi bật từ hình ảnh bằng cách sử dụng các phương thức getter trong lớp Palette chẳng hạn như Palette.getVibrantColor.

Để sử dụng lớp {@link android.support.v7.graphics.Palette} trong dự án của mình, hãy thêm Phần phụ thuộc Gradle sau vào mô-đun ứng dụng của bạn:

dependencies {
    ...
    compile 'com.android.support:palette-v7:21.0.0'
}

Để biết thêm thông tin, hãy xem tài liệu tham khảo API cho lớp {@link android.support.v7.graphics.Palette}.

Tạo Nội dung vẽ được Véc-tơ

Video

Đồ họa Véc-tơ Android

Trong Android 5.0 (API mức 21) và cao hơn, bạn có thể định nghĩa nội dung vẽ được véc-tơ co giãn mà không làm mất độ sắc nét. Bạn chỉ cần một tệp tài sản cho một hình ảnh véc-tơ, đối lập với tệp tài sản cho từng mật độ màn hình trong trường hợp hình ảnh bitmap. Để tạo một hình ảnh véc-tơ, bạn định nghĩa chi tiết của hình ảnh trong phần tử XML <vector>.

Ví dụ sau định nghĩa hình ảnh véc-tơ có hình một trái tim:

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

  <!-- draw a path -->
  <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" />
</vector>

Hình ảnh véc-tơ được biểu diễn trong Android dưới dạng đối tượng {@link android.graphics.drawable.VectorDrawable} . Để biết thêm thông tin về cú pháp pathData, hãy xem tham chiếu Đường dẫn SVG. Để biết thêm thông tin về việc tạo hiệu ứng hoạt hình các thuộc tính của nội dung vẽ được véc-tơ, hãy xem Tạo Hiệu ứng Hoạt hình Nội dung vẽ được Véc-tơ.