【问题标题】:Android: writing drawables in xmlAndroid:在 xml 中编写可绘制对象
【发布时间】:2015-07-31 19:30:20
【问题描述】:

我需要创建一些如下图所示的可绘制对象,有没有办法在 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 中编写它

【问题讨论】:

标签: android drawable


【解决方案1】:

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

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>

【讨论】:

    【解决方案2】:

    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>
    

    【讨论】:

      猜你喜欢
      • 2016-07-24
      • 2010-11-19
      • 2020-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-22
      相关资源
      最近更新 更多