我有以下选择器:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<stroke android:width="1dp" android:color="@color/divider"/>
</shape>
</item>
</selector>
用作按钮的背景:
<Button
android:id="@+id/delete"
android:layout_width="25dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/delete_button_stroke"
android:text="@string/minus"
android:textColor="@color/blue"
android:textSize="20sp" />
我在按钮周围做了一个边框,但按钮的背景颜色是透明的。
如何使用选择器为按下的按钮设置背景颜色和背景颜色?
非常感谢任何建议
答案 0 :(得分:1)
首先,在 res / drawable 文件夹中创建两个ShapeDrawable xml文件,如下所示:
<强> btn_state_normal.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid
android:color="#ffff00"
/>
<stroke
android:width="2dp"
android:color="#0000ff"
/>
<padding
android:left="2dp"
android:top="2dp"
android:bottom="2dp"
android:right="2dp"
/>
<size
android:height="10dp"
android:width="10dp"
/>
</shape>
<强> btn_state_pressed.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid
android:color="#ff0000"
/>
<stroke
android:width="2dp"
android:color="#00ff00"
android:dashWidth="4dp"
android:dashGap="2dp"
/>
<padding
android:left="2dp"
android:top="2dp"
android:bottom="2dp"
android:right="2dp"
/>
<size
android:height="10dp"
android:width="10dp"
/>
</shape>
请注意,大小值与(Image)Button
无关,可绘制的图片会拉伸以适应。
然后您的选择器应如下所示:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/btn_state_normal"
android:state_pressed="false"/>
<item
android:drawable="@drawable/btn_state_pressed"
android:state_pressed="true"/>
</selector>
因为在第一个项目中设置了android:state_pressed="false"
,所以下一个项目将用于按下状态。
另请参阅StateListDrawable
答案 1 :(得分:0)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<stroke android:width="1dp" android:color="@color/divider"/>
</shape>
</item>
<color android:color="@color/abc_search_url_text_normal"/>// add this line it should work.
</selector>