我可以在一个Android drawable中使用多个形状吗?

我可以在一个Android drawable中使用多个形状吗?,android,layout,drawable,Android,Layout,Drawable,我想做的是定义一个在线性布局中使用的公共背景,它经常出现在我的应用程序的许多活动中。此特定布局是显示在每个活动顶部的标题 我想做的是创建一个可绘制的,用渐变填充线性布局,在渐变下面有一条水平线 是否有人知道这是可能的,或者我必须只使用嵌套布局来做这类事情 我对可绘制xml的尝试是 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape xmlns:and

我想做的是定义一个在线性布局中使用的公共背景,它经常出现在我的应用程序的许多活动中。此特定布局是显示在每个活动顶部的标题

我想做的是创建一个可绘制的,用渐变填充线性布局,在渐变下面有一条水平线

是否有人知道这是可能的,或者我必须只使用嵌套布局来做这类事情

我对可绘制xml的尝试是

 <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient android:startColor="#AA000000" android:endColor="#AA333333"
        android:angle="270" />
</shape>
</item>
<item>
<shape android:shape="line">
    <stroke android:width="3dp" android:color="#FFFFFFFF"
            android:dashWidth="1dp" android:dashGap="2dp" />
    <size android:height="5dp" />
</shape>
</item>
</selector>

Drawable接受多个形状(总是在其他文件中定义),如果我理解您的问题,也许您可以做一个层Drawable(这将在彼此的顶部绘制多个底层Drawable)

我在这里写这个,所以,我没有测试,但试试这个,阅读这个奇妙的文档

<?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@drawable/shape_7"/>
        <item android:drawable="@drawable/shape_1"/>
    </layer-list>


干杯

使用重力图层列表中设置项目

for vertical orientation use: android:gravity="top" android:gravity="center" android:gravity="bottom" 对于垂直方向使用: android:gravity=“top” android:gravity=“center” android:gravity=“底部” 对于水平方向使用: android:gravity=“左” android:gravity=“center” android:gravity=“右”

确保父元素有足够的空间容纳所有项目
否则它们将相互重叠

是否也可以将它们设置为一个低于另一个(在Y坐标中)?将android名称空间添加到每个项目及其perfectGood point@PhiliiIpp。但是,在层列表中添加名称空间就足够了,而不是将其添加到列表中的每个项中。像这样:。任何人都可以在另一个(Y坐标)下创建一个形状吗?我使用两个答案combine@Franco for horizontal orientation use: android:gravity="left" android:gravity="center" android:gravity="right"
<layer-list
           xmlns:android="http://schemas.android.com/apk/res/android">
          <item>
                <bitmap
                   android:src="@drawable/top_img"
                   android:gravity="top"/>
          </item>
          <item>
                <bitmap
                   android:src="@drawable/center_img"
                   android:gravity="center"/>
          </item>
          <item>
                <bitmap
                   android:src="@drawable/bottom_img"
                   android:gravity="bottom"/>
          </item>
</layer-list>