Android:在 xml 中编写可绘制对象

Android: writing drawables in xml

我需要创建一些如下图所示的可绘制对象,在 xml 中有没有办法做到这一点?

编辑:

我知道了:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="@color/darker_gray" />
            <corners android:radius="6dp" />
        </shape>
    </item>

    <item
        android:bottom="3dp">
        <shape android:shape="rectangle">
            <solid android:color="@color/dark_gray" />
            <corners android:radius="6dp" />
        </shape>
    </item>
</layer-list>

就像图片上一样,没有那个蓝色的角,我不知道如何做那个对角线形状。现在我使用的是 9 补丁,但由于我所有其他按钮都在 xml 中,我只是想知道是否有一些方法可以在 xml

中也写这个

You should use layer list to combine multiple drawables 下面是一个例子

你也应该检查这个very complete guide to android drawable

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
      <shape 
        android:shape="rectangle">
            <stroke android:width="1dp" android:color="#585858" />
            <solid android:color="#FF9009" />
            <padding android:bottom="1dp"/>
        </shape>
   </item>
   <item android:left="10dp" android:top="20dp" android:bottom="20dp" android:right="150dp">
      <shape 
        android:shape="oval">
            <stroke android:width="1dp" android:color="#ffffff" />
            <solid android:color="#118C4E" />
            <padding android:bottom="1dp"/>
        </shape>
   </item>
   <item android:left="150dp" android:top="20dp" android:bottom="20dp" android:right="10dp">
      <shape 
        android:shape="rectangle">
            <stroke android:width="1dp" android:color="#ffffff" />
            <solid android:color="#C1E1A6" />
            <padding android:bottom="1dp"/>
        </shape>
   </item>
</layer-list>

试试这个代码,我想这就是你想要的:

draw.xml

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


     <item>
          <shape 
            android:shape="rectangle">
            <size android:width="100dp"
                        android:height="60dp"/>
                <stroke android:width="2dp" android:color="#333333" />
                <solid android:color="#333333" />
                <padding android:bottom="3dp"/>
                <corners android:radius="5dp"/>
            </shape>
       </item>

       <item>
          <shape 
            android:shape="rectangle">
                <size android:width="100dp"
                        android:height="60dp"/>
                <stroke android:width="2dp" android:color="#000000" />
                <solid android:color="#000000" />
                <padding android:bottom="1dp"/>
                <corners android:radius="5dp"/>
            </shape>
       </item>


       <item>
            <rotate
                android:fromDegrees="-45"
                android:toDegrees="45"
                android:pivotX="-40%"
                android:pivotY="87%" >
                <shape
                    android:shape="rectangle" >
                    <size android:width="50dp"
                        android:height="50dp"/>
                    <stroke android:color="@android:color/transparent" android:width="0dp"/>
                    <solid
                        android:color="@android:color/holo_blue_light" />
                    <corners android:radius="5dp"/>
                </shape>
            </rotate>
        </item>
        <item>
          <shape 
            android:shape="rectangle">
                <size android:width="100dp"
                        android:height="60dp"/>
                <stroke android:width="2dp" android:color="@android:color/transparent" />
                <solid android:color="@android:color/transparent" />
                <corners android:radius="5dp"/>
            </shape>
       </item> 
    </layer-list>

并在您的布局文件中

<RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="20dp"
        android:layout_centerInParent="true"
        android:background="@drawable/draw" >
    </RelativeLayout>