可绘制的边框

时间:2014-02-25 14:55:18

标签: android

我有这个drawable我用于2按钮这样

<Button
    android:layout_width="0dp"
    android:layout_weight="1"
    tools:text="No"
    android:layout_height="wrap_content"
    android:id="@+id/dialog_negative"
    android:background="@drawable/btn_trans_blue"
    android:textAlignment="gravity"
    android:gravity="center"
/>
<Button
    android:layout_width="0dp"
    android:layout_weight="1"
    tools:text="Yes"
    android:layout_height="wrap_content"
    android:id="@+id/dialog_positive"

    android:background="@drawable/btn_trans_blue"
    android:textAlignment="gravity"
    android:gravity="center"
/>

btn_trans_blue.xml     

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_pressed="true"
        android:drawable="@color/fublue" />

    <item
        android:state_activated="true"
        android:drawable="@color/fublue" />
    <item
        android:drawable="@drawable/custom_button" />
</selector>

custom_button.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="#FF0000" />
        </shape>
    </item>
    <item android:right="1dp">
        <shape android:shape="rectangle">
            <solid android:color="@color/white" />
        </shape>
    </item>
</layer-list>

我需要的是两个按钮在顶部有一个1dp边框(它给出了),但是负按钮在右边有一个1dp边框。

如何将其添加到布局?

1 个答案:

答案 0 :(得分:1)

您可以将 border 替换为在主体颜色下方绘制的其他形状,然后仅在您想要边框的两侧为顶部形状添加偏移。例如,只在顶部有一个红色边框,你可以这样做:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <!-- Border -->
    <item>
        <shape>
            <solid android:color="#f000"></solid>
        </shape>
    </item>
    <!-- Body -->
    <item android:top="2dp">
        <shape>
            <solid android:color="#ffafafaf"></solid>
        </shape> 
    </item>
</layer-list>

或者如果你需要一个边框(用虚线或其他)设置第一个项目(下面的那个)的边框,然后第二个项目(顶部的那个)上的偏移将显示该边框。 / p>