1

我创建了一个自定义按钮:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <shape>
            <gradient android:startColor="#5a803f"
                android:endColor="#446c1a" android:angle="90" />
            <stroke android:width="5dp" android:color="#3d5e1d" />
            <corners android:radius="3dp" />
            <padding android:left="8dp" android:top="8dp"
                android:right="8dp" android:bottom="8dp" />
        </shape>
    </item>
    <item android:state_focused="true">
        <shape>
            <gradient android:startColor="#5a803f"
                android:endColor="#446c1a" android:angle="90" />
            <stroke android:width="5dp" android:color="#3d5e1d" />
            <corners android:radius="3dp" />
            <padding android:left="8dp" android:top="8dp"
                android:right="8dp" android:bottom="8dp" />
        </shape>
    </item>
    <item>

    </item>

</selector>

但是我需要将此按钮放置在具有定义边距的黑色背景上,并在顶部和底部带有白色边框。而且这个背景不应该是可点击的。像这样的东西:

在此处输入图像描述

我该如何实施?借助此选择器或样式使用。请帮助提供代码示例。

4

2 回答 2

1

您可以使用选择器来实现它

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/icon_button_disabled" android:state_enabled="false"/>
    <item android:drawable="@drawable/icon_button_pressed" android:state_pressed="true"/>
    <item android:drawable="@drawable/icon_button_focused" android:state_focused="true"/>
    <item android:drawable="@drawable/icon_button_normal"/>
</selector>

按钮布局

   <?xml version="1.0" encoding="utf-8"?>
    <Button android:id="@+id/textAndIconBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Text in the button"
        android:background="@drawable/button"
        android:drawableLeft="@drawable/star_icon"
        android:drawablePadding="5dip"
        android:textColor="#ffffffff"/>

有关更多信息,您可以尝试此链接

于 2013-01-15T13:00:26.277 回答
0

我使用 TableLayout 解决了这个问题。在这种情况下,我的 TextView 看起来像:

   <TableRow
    android:id="@+id/tableRow3"
    style="@style/button_row"
    >
    <Button

        android:id="@+id/btnProceed"
        style="@style/custom_button"
        android:layout_centerHorizontal="true"
        android:text="Log In"
         />
    </TableRow>

等所有 UI 元素。

于 2013-02-06T10:08:04.933 回答