<layer-list> 中有两个<item>时,是会覆盖吗
时间: 2023-12-08 20:03:29 浏览: 38
不一定会覆盖。在 <layer-list> 中,每个 <item> 定义一个 drawable,多个 drawable 会按照在 <layer-list> 中的顺序依次绘制,后面的 drawable 可能会遮盖前面的 drawable,也可能会与前面的 drawable 叠加。通常情况下,如果后面的 drawable 完全覆盖了前面的 drawable,那么前面的 drawable 就看不到了。但如果后面的 drawable 只是部分覆盖了前面的 drawable,那么两个 drawable 可能会叠加显示。如果想要控制 drawable 的叠加顺序,可以使用 <item> 的 android:drawableLevel 属性。
相关问题
android 中的 <layer-list> 标签
在 Android 中,<layer-list> 标签用于创建一个图形层列表,可以在一个图形中使用多个图层。每个图层可以指定颜色、形状、边框等属性,可以通过设置透明度来创建半透明效果。
<layer-list> 标签通常用于创建自定义的按钮、标签等 UI 控件,也可以用于创建渐变背景、圆形头像等效果。
以下是一个使用 <layer-list> 标签创建自定义按钮的示例:
```xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<layer-list>
<item>
<shape android:shape="rectangle">
<corners android:radius="8dp" />
<solid android:color="#333333" />
</shape>
</item>
<item android:bottom="4dp">
<shape android:shape="rectangle">
<corners android:radius="8dp" />
<solid android:color="#555555" />
</shape>
</item>
</layer-list>
</item>
<item>
<shape android:shape="rectangle">
<corners android:radius="8dp" />
<solid android:color="#444444" />
</shape>
</item>
</selector>
```
该示例使用 <layer-list> 标签定义了两个图层,第一个图层为按钮的底部,使用矩形形状和圆角边框,填充颜色为 #333333;第二个图层为按钮的顶部,也使用矩形形状和圆角边框,填充颜色为 #555555,并设置了 bottom 属性为 4dp,使其相对于底部图层向上偏移 4dp。当按钮被按下时,会显示底部图层和顶部图层的组合,形成按下效果。未被按下时,只显示底部图层,形成普通状态的按钮。
<layer-list
<-list>是一个用于定义图层列表的XML标签。它可以包含一系列的<item>标签,每个<item>标签代表一个图层。
例如,下面是一个简单的<layer-list>示例:
```xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/shape_circle" />
<item android:drawable="@drawable/shape_rectangle" />
</layer-list>
```
在这个示例中,<layer-list>包含两个<item>标签,分别引用了两个不同的drawable资源(shape_circle和shape_rectangle)。这将在应用程序中创建一个图层列表,其中第一个图层是圆形,第二个图层是矩形。
<layer-list>标签常用于创建复杂的背景或组合多个图层。
请问还有其他关于<layer-list>的问题吗?