[英]How do I make the button change color when it's pressed?
我对android编程有点陌生,所以我对自己的工作一无所知。 我想在按下按钮时使按钮改变颜色。 到目前为止,这是我的按钮的外观:
<Button
android:id="@+id/c1"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:background="#FFFFFF" >
</Button>
我必须添加什么才能使其在按下时变色?
定义按钮选择器并将其设置为按钮background
选择器:
button_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_focused="true" android:drawable="@color/pressed_button_clr"></item>
<item android:state_pressed="true" android:drawable="@color/pressed_button_clr"></item>
<item android:drawable="@color/default_button_clr"></item>
</selector>
xml代码是:
<Button
android:id="@+id/c1"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:background="@drawable/button_selector" >
</Button>
因为您要定义自己的背景色,所以按钮看起来好像没有被单击一样,因此,如果删除定义的背景色,它将看起来像单击一样。 为了定义自己的背景色,您必须创建一个自定义按钮
创建一个自定义按钮
创建与您想要的颜色匹配的形状
按钮点击形状
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<stroke
android:width="1dp"
android:color="#505050"/>
<size android:width="180dp"
android:height="40dp"/>
<solid android:color="#505050"/>
</shape>
按钮正常形状
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="1dp"/>
<size android:width="180dp"
android:height="40dp"/>
<solid android:color="#4ddedede"/>
</shape>
创建这两个形状后,请创建按钮以使用它们
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="false" android:drawable="@drawable/button_normal"/>
<item android:state_pressed="true" android:drawable="@drawable/button_clicked"/>
</selector>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.