Tài nguyên LayerDrawable <layer-list>
LayerDrawable là loại Drawable mà nó chứa nhiều phần tử <item> bên trong, mỗi phần tử này biểu diễn một Drawable, chúng tạo thành một lớp hình ảnh. Kết quả vẽ tất cả các lớp đó theo thứ tự là hình ảnh cuối cùng của LayerDrawable
Cú pháp xml tạo ra LayerDrawable như sau:
<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<!--Drawable của item-->
</item>
<item>
<!--Drawable của item-->
</item>
<!-- ... -->
</layer-list>
Thuộc tính của <item> trong LayerDrawable
<item> (lớp) của LayerDrawable bên trong nó có chứa phần tử con là bất kỳ loại Drawable nào đã biết như bitmap, vector ... và có thể thiết lập các thuộc tính như sau:
| Thuộc tính | Ý nghĩa |
|---|---|
android:bottomandroid:topandroid:leftandroid:right |
Khoảng cách căn lề về các phía dưới, trên, trái, phải của Layer ví dụ: android:bottom="10dp" |
android:paddingBottomandroid:paddingTopandroid:paddingLeftandroid:paddingRight |
Khoảng padding theo từng phía các cạnh |
android:width |
Thiết lập chiều rộng của Layer |
android:width |
Thiết lập chiều cao của Layer |
Ví dụ LayerDrawable
Có các hình ảnh: face.png
, flower1.png
, flower2.png
, tải về copy vào thư mục drawable của dự án (nó đã trở thành BitmapDrawable). Giờ ta sẽ tạo ra một LayerDrawable kết hợp từ 3 hình ảnh đó
Tạo file drawable/bglayer.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:width="768px"
android:height="1280px">
<shape>
<gradient
android:centerX="0.5"
android:centerY="0.3"
android:endColor="#b0bec5"
android:gradientRadius="300dp"
android:startColor="#fafafa"
android:type="radial" />
</shape>
</item>
<item
android:left="10px"
android:top="300px">
<bitmap
android:gravity="right|center"
android:src="@drawable/face" />
</item>
<item
android:left="10px"
android:bottom="10px">
<bitmap
android:gravity="bottom|left"
android:src="@drawable/flower1" />
</item>
<item
android:right="-210px">
<bitmap
android:gravity="center|right"
android:src="@drawable/flower2" />
</item>
</layer-list>
Và đây là kết quả khi sử dụng nó làm nền
