关于 Drawable(二)

layer-list

类似于 FrameLayout,将列表中的 item 叠加在一块,最后的 item 显示在最前面。

item

layer-list 子项,之后会细说,相当于是一个自定义性很强的图层,可以接受 bitmap 。

52eb2279jw1f2rx409pcnj2044048mx5

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap
android:src="@drawable/huaji">
</bitmap>
</item>
<item
android:left="280dp"
android:top="280dp">
<bitmap
android:src="@drawable/huaji">

</bitmap>
</item>
<item
android:right="280dp"
android:top="280dp">
<bitmap
android:src="@drawable/huaji">
</bitmap>
</item>
</layer-list>

item 可以通过 top 、 right 、bottom 、 left 来调整位置。

效果是这样的:

屏幕快照 2017-05-04 上午11.15.20

底层那张怎么为什么那么大?

我是这样理解的,一开始的时候,有一个边框,大小就是第一个 item 的默认大小,当我们加入第二个 item 时,容器就被扩充了,所以之前的 item 跟着变大了,可以参考下图

huaji

但是当我们给第一个 item 设置一个 gravity 属性的时候,比如 android:gravity="center",
就会变成这样

屏幕快照 2017-05-04 上午11.33.28

根据上面的框图,这也不难理解,由于有了方向,所以 item 1 就没有再占满边框,而是变成了默认大小。

最后有一个比较有意思地方,当给 item 都设置 tileMode 属性的时候,结果可能和你想的不一样哦。

最后附上滑稽的 png 资源

huaji