如何从上到下创建3个形状图层列表

时间:2018-09-21 14:36:44

标签: android

大家好,我为3个形状创建了2个xml。 2个形状是矩形,1个是环。

第一个XML

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="@color/colorGrey"/>
<size android:height="40dp" android:width="10dp"/>
</shape>

第二个XML

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="oval">
<solid android:color="@color/colorWhite"/>
<size android:height="40dp" android:width="40dp"/>
</shape>

然后我创建了一个这样的图层列表可绘制对象

<?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <bitmap android:src="@drawable/rectangle"
            android:gravity="center" />
    </item>
    <item android:top="40dp">
        <bitmap android:src="@drawable/circle"
            android:gravity="center" />
    </item>
    <item android:top="40dp">
        <bitmap android:src="@drawable/rectangle"
            android:gravity="center" />
    </item>
    </layer-list>

我的主要目标是创建this。主要问题是它们彼此堆叠在一起。

1 个答案:

答案 0 :(得分:0)

尝试一下(根据您的代码,我假设图像尺寸为40x40dp,根据您的图像,背景为白色):

<?xml version="1.0" encoding="utf-8"?>
 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
     <item>
         <shape
             android:shape="rectangle">
             <solid android:color="@color/white"/>
             <size android:height="40dp" android:width="40dp"/>
         </shape>
     </item>
     <item
         android:right="18dp"
         android:left="18dp">
         <shape
             android:shape="rectangle">
             <solid android:color="@color/green"/>
             <size android:height="40dp" android:width="4dp"/>
         </shape>
     </item>
     <item android:gravity="center">
         <shape
             android:shape="oval">
            <solid android:color="@color/green"/>
            <size android:height="15dp" android:width="15dp"/>
            <stroke android:width="2dp" android:color="@color/white"/>
        </shape>
    </item>
</layer-list>

Preview