VectorDrawable (Bài trước)
(Bài tiếp) LayerDrawable

Tài nguyên NinePatchDrawable <vector>

Các loại ảnh Drawable NinePatchDrawable (NinePatch, nine-patch) là ảnh bitmap png có đặt phần mở rộng là .9.png, lúc này lớp NinePatchDrawable nạp và vẽ nó theo một cách đặc biệt dựa theo cấu tạo của ảnh như sau:

Nó xác định vùng co kéo được, trong ảnh đánh dấu vùng này bởi đường kẻ ngang và đứng như trên hình. Khi ảnh này vẽ, nó thu phóng theo kích thước nền sử dụng nhưng nó chỉ co kéo vùng xác định còn các vùng khác sẽ giữ nguyên (không bị méo hình).

Nếu ảnh có thêm đường đánh dấu padding như hình thì nó cũng căn padding cách cạnh đúng khoảng cách như trên.

Ví dụ sử dụng nine-patch làm nền cho TextView

Ta thấy cùng một ảnh nền nine-patch, khi nó co kéo cho vừa với TextView, nó chỉ có kéo phần đánh dấu ở giữa, các phần bo tròn ở góc, phần mũi tên chỉ không bị co kéo mà nó giữ phần ảnh gốc

Sử dụng công cụ tạo nine-patch của Android Studio

Chuẩn bị một ảnh png muốn nó trở thành nine-patch, ví dụ bạn tải ảnh ảnh về , đặt lại tên ảnh là bgexample.9.png quan trọng là có phần mở rộng .9.png, sau đó copy vào res/drawable

Lúc này, mở ra trong Android Studio nó sẽ nhận diện đây là nine-patch và tự động mở trình biên tập:

Bạn dễ dàng đánh dấu các vùng cụ thể trong 9-patch với công cụ này.

Đây là kết quả


Đăng ký nhận bài viết mới
VectorDrawable (Bài trước)
(Bài tiếp) LayerDrawable