我创建了一个自定义按钮:
<?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>
但我需要将此按钮放在带有定义边距的黑色背景上,并在顶部和底部使用白色边框。而且这个背景不应该是可点击的。像这样:
我该如何实现?借助此选择器或样式使用。请使用代码示例帮助。
答案 0 :(得分: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"/>
有关详情,请尝试this Link
答案 1 :(得分: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元素。