Android代码可在点击时更改按钮颜色并返回原始颜色

时间:2015-12-06 15:18:26

标签: android

我想在点击按钮时更改按钮的颜色,当它要移动到下一个活动时,它的颜色应该设置为原始颜色。简而言之,它应突出显示通过更改颜色并返回相同颜色而单击的按钮。

5 个答案:

答案 0 :(得分:1)

使用按钮背景,如xml:

my_button_selector.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@color/red"/> <!-- pressed -->
    <item android:state_focused="true" android:drawable="@color/blue"/> <!-- focused -->
    <item android:drawable="@color/black"/> <!-- default -->
</selector>

在res / values文件夹中创建colors.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
     <color name="black">#000</color>
     <color name="blue">#00f</color>
     <color name="red">#f00</color>
</resources>

答案 1 :(得分:0)

抽拉/ background.xml

<?xml version="1.0" encoding="utf-8" ?>     
<selector xmlns:android="http://schemas.android.com/apk/res/android">   
  <item android:state_pressed="true"   android:drawable= "#000000" />   
  <item android:drawable="#000000" />     
</selector>

颜色/ color.xml

<?xml version="1.0" encoding="utf-8" ?>     
<selector xmlns:android="http://schemas.android.com/apk/res/android">   
  <item android:state_pressed="true"   android:color= "#000000" />   
  <item android:color="#4b14b1" />     
</selector>
button.setBackgroundResource(R.drawable.background)
button.setTextColor(R.color.color)

答案 2 :(得分:0)

您只需在布局文件中设置按钮选择器。

<Button
     android:id="@+id/button1"
     android:background="@drawable/selector_xml_name"
     android:layout_width="200dp"
     android:layout_height="126dp"
     android:text="Hello" />

并完成。

修改

以下是drawable目录中的button_effect.xml文件

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/numpad_button_bg_selected" android:state_selected="true"></item>
    <item android:drawable="@drawable/numpad_button_bg_pressed" android:state_pressed="true"></item>
    <item android:drawable="@drawable/numpad_button_bg_normal"></item>

</selector>

在这里,你可以看到有3个drawable,你只需要将这个button_effect样式放在你的按钮上,就像我上面写的那样。您只需要将selector_xml_name替换为button_effect。

查看This链接。

答案 3 :(得分:0)

mybutton.xml 将此文件放在可绘制文件夹

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content">
<item android:state_pressed="true" >
 <shape android:shape="rectangle"  >
     <corners android:radius="3dip" />
     <stroke android:width="1dip" android:color="#5e7974" />
     <gradient android:angle="-90" android:startColor="#345953" android:endColor="#689a92"  />            
   </shape>
 </item>
<item android:state_focused="true">
 <shape android:shape="rectangle"  >
     <corners android:radius="3dip" />
     <stroke android:width="1dip" android:color="#5e7974" />
     <solid android:color="#58857e"/>       
 </shape>
</item>  
<item >
 <shape android:shape="rectangle"  >
     <corners android:radius="3dip" />
     <stroke android:width="1dip" android:color="#5e7974" />
     <gradient android:angle="-90" android:startColor="#8dbab3"  android:endColor="#58857e" />            
  </shape>
 </item>
 </selector>

根据您的需要更改颜色。

然后在您的活动xml屏幕和以下代码中代替按钮

<Button
 android:id="@+id/button1"
 android:background="@drawable/mybutton"
 android:layout_width="200dp"
 android:layout_height="126dp" />

答案 4 :(得分:0)

您需要在可绘制的许多解决方案中创建一个选择器。 遵循以下内容: 1.)在drawable文件夹中创建xml文件button_selector:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/numpad_button_bg_selected" android:state_selected="true"></item>
    <item android:drawable="@drawable/numpad_button_bg_pressed" android:state_pressed="true"></item>
    <item android:drawable="@drawable/numpad_button_bg_normal"></item>

</selector>

2.打开布局并在按钮上应用此xml选择器文件:

<Button
 android:id="@+id/btnClick"
 android:background="@drawable/button_selector"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content" />