如何创建像这样的xml drawable

时间:2014-03-18 11:53:37

标签: android android-drawable layer-list

我需要创建一个顶部有3dp高度线/矩形的drawable,底部有一个70%不透明度和2dp高度线/矩形的黑色矩形。我怎么能这样做?

This is what I could do until now

This is what happens if I set the color to #99000000

以下是我正在使用的代码:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:top="0dp" android:left="0dp" android:right="0dp">
        <shape android:shape="rectangle" >
            <size android:height="3dp"></size>
            <solid android:color="#C81F25"></solid>
        </shape>
    </item>
    <item android:top="2dp">
        <shape android:shape="rectangle">
            <solid android:color="#99000000"></solid>
        </shape>
    </item>

</layer-list>

PS:忽略图像周围的灰色渐变,它来自Android Studio预览。

2 个答案:

答案 0 :(得分:0)

是否可以使用linearlayout构建没有drawable的布局。我不知道你下面两个案例中的哪一个:

  1. 在顶部布局上有一个黑色alphamask,顶部和底部边距为2dp / 3dp,嵌套在红色布局中。

  2. 在底部布局上,黑色alphamask的顶部有一个3dp高度的矩形,alpha遮罩下面有一个2dp高度的矩形。

  3. LinearLayouts

    `     

        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="2dp"
            android:layout_marginTop="3dp"
            android:background="#9000" >
    
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Content"
                android:textColor="@android:color/white" />
    
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Content"
                android:textColor="@android:color/white" />
    
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Content"
                android:textColor="@android:color/white" />
    
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Content"
                android:textColor="@android:color/white" />
        </LinearLayout>
    </LinearLayout>`
    

    OR

    `

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="3dp"
            android:background="#C81F25" >
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:background="#9000" >
    
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Content"
                android:textColor="@android:color/white" />
    
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Content"
                android:textColor="@android:color/white" />
    
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Content"
                android:textColor="@android:color/white" />
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="2dp"
            android:background="#C81F25" >
        </LinearLayout>
    </LinearLayout>`
    

答案 1 :(得分:0)

案例1:另一个矩形内的矩形。

案例2:3矩形,其中2个是透明的,具有负填充和笔划。在eclipse预览中,案例2显示错误但它是正确的并且在部署时有效。

案例1: 可绘制文件夹中的actionbarbg.xml:

<?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="#F00" />
        </shape>
    </item>
    <item android:top="3dp" android:right="0dp" android:bottom="2dp"
        android:left="0dp">
        <shape android:shape="rectangle">
            <solid android:color="#9000" />
        </shape>
    </item>
</layer-list>

案例2 :(某种黑客行为)

<?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="#9000" />
        </shape>
    </item>
    <item
        android:top="-2dp"
        android:left="-2dp"
        android:right="-2dp">
        <shape>
            <solid android:color="@android:color/transparent" />

            <stroke
                android:width="2dp"
                android:color="#C81F25" />
        </shape>
    </item>
    <item
        android:left="-3dp"
        android:right="-3dp"
        android:bottom="-3dp">
        <shape>
            <solid android:color="@android:color/transparent" />

            <stroke
                android:width="3dp"
                android:color="#C81F25" />
        </shape>
    </item>

</layer-list>