android button 点击后如何更换背景,然后点击其他按钮时该按钮背景换回来?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android button 点击后如何更换背景,然后点击其他按钮时该按钮背景换回来?相关的知识,希望对你有一定的参考价值。

如题,例如Button1和Button2。我点击Button1后会更换背景图片(表示选中),然后点击Button2,Button1的背景会更换回来(表示未选中),同事Button2更换表示选中的背景?

1、要更换背景的按钮,id是myself。其他按钮(以一个按钮未代表)

Button myButton = (Button)findViewById(R.id.myself);//要改变背景的按钮
Button otherButton = (Button)findViewById(R.id.xxxx);//其他按钮

2、定义Listener,如果id是myself,则改变为其他背景,否则变回来

OnClickListener cl = new OnClickListener() 
    @Override
    public void onClick(View v)
        if(v.getId()==R.id.myself)//如果是myself按钮,则设置一种背景
      myButton.setBackgroundResource(R.drawable.xxxx1); 
    else//如果不是myself按钮,则设置回来。
      myButton.setBackgroundResource(R.drawable.xxxx2); 
     
    

3、按钮设置监听

myButton.setOnClickListener(cl);
otherButton.setOnClickListener(cl);

参考技术A 在Xml中给Button指定一个Background即可。
------------------------------------------------------------
更多疑问解答,尽在@安卓互助平台 新浪微博本回答被提问者采纳

Android中的Button怎么在点击更换背景?点击后又恢复原来的背景?

比如说,一个Button在不被点击时背景为图片A,怎么在点击时换成图片B?点击后又恢复成图片A?

只需要给Button配置一个Selector背景选择器即可实现。
1.创建mylist_view.xml文件
首先在res目录下新建drawable文件夹,再在新建的drawable文件夹中新建mylist_view.xml,其目录结构为:res/drawable/mylist_view.xml。

2.根据具体需求编辑mylist_view.xml文件
新建mylist_view.xml文件后,在没有添加任何属性时其内部代码结构为:
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
</selector>

3.下面就可以根据项目需求,在其内部定义为自己想要的样式了,主要属性如下:
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 默认时的背景图片-->
<item android:drawable="@drawable/pic1" />
<!-- 没有焦点时的背景图片 -->
<item android:state_window_focused="false" android:drawable="@drawable/pic1" />
<!-- 非触摸模式下获得焦点并单击时的背景图片 -->
<item android:state_focused="true" android:state_pressed="true" android:drawable= "@drawable/pic2" />
<!-- 触摸模式下单击时的背景图片-->
<item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/pic3" />
<!--选中时的图片背景-->
<item android:state_selected="true" android:drawable="@drawable/pic4" />
<!--获得焦点时的图片背景-->
<item android:state_focused="true" android:drawable="@drawable/pic5" />
</selector>

4.引用mylist_view.xml文件
android:background="@drawable/mylist_view"
参考技术A 首先要用ImageButton,可以set它的颜色和图片(button.setImageResource)
比如说未点击时setImageResource(R.drawable.a)
再写个setOnClickListener,里面写点击之后
if(button.getResources().getDrawable(R.drawable.a))
setImageResource(R.drawable.b)
else if(图片为b)
setImageResource(R.drawable.a)本回答被提问者采纳
参考技术B private ImageButton scanButton;
private boolean isIconChange = true;
scanButton.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View view)
if (isIconChange)
scanButton.setImageResource(R.drawable.check);
isIconChange = false;
else
scanButton.setImageResource(R.drawable.uncheck);
isIconChange = true;


);
测试成功。。

以上是关于android button 点击后如何更换背景,然后点击其他按钮时该按钮背景换回来?的主要内容,如果未能解决你的问题,请参考以下文章

(Android学习)点击按钮Button,更换背景颜色

javascript 点击button更换背景图片 如何实现?

Android中button点击后字体的变色效果

启用setInterval()定时器更换背景

android button边框怎么去掉

如何自定义android Button样式