Android ...点击时更改按钮颜色,但我有很多按钮?

时间:2011-05-21 21:42:27

标签: android button user-interface background-color

我想在点击时更改按钮的颜色。 但是当我点击另一个第二个按钮时,第一个按钮必须用最后一个颜色着色。

我的意思是,当我点击whic按钮时,它必须用蓝色着色而其他按钮必须是非彩色的。这是代码;

    if(view == button1)
    {
        button1.setBackgroundColor(Color.BLUE);


    }
    else if(view == button2){
        button2.setBackgroundColor(Color.BLUE);
    }   
    else if(view == button3){
        button3.setBackgroundColor(Color.BLUE);
    }
    else if(view == button4){
        button4.setBackgroundColor(Color.BLUE);
    }

5 个答案:

答案 0 :(得分:3)

//init all buttons background : GRAY
public void initButtons(){
button1.setBackGroundColor(Color.GRAY);
button2.setBackGroundColor(Color.GRAY);
button3.setBackGroundColor(Color.GRAY);
button4.setBackGroundColor(Color.GRAY);
}

并在OnClick的实现中:执行此操作:

@Override
public void onClick(View v ) {
initButtons();
((Button)v).setBackGroundColor(Color.BLUE);
}

希望有所帮助:)

答案 1 :(得分:2)

您可以使用drawable选择器在xml中定义按钮状态,然后默认情况下,单击的按钮将在处于单击状态时更改为您想要的颜色。

在drawable文件夹中创建一个新的xml文件,例如blue_btn.xml

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

<item android:drawable="@color/yourOtherColor" android:state_enabled="true" />
</selector>

然后使用R.drawable.blue_btn作为按钮的背景

请参阅:http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList

答案 2 :(得分:0)

保留对先前修改过的Button的引用。当您进行新的单击时,将先前引用的Button设置为未着色,将当前按钮设置为蓝色,然后将该引用设置为当前按钮。

答案 3 :(得分:0)

当您需要在按下按钮时更改按钮的背景颜色时,您必须遵循这些,

//创建一个xml文件,就像drawable

中的layout_a.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="@drawable/btn_pressed" /> <!--btn pressed --> 
<item android:drawable="@drawable/btn_normal" /> <!-- Normal condition -->
</selector>

//现在这个文件应该在一个可绘制的文件夹中,并在按钮代码中使用这个单行代码来获取这个xml文件的所有属性。

    <Button
      android:id="@+id/street_btn"
      android:layout_width="wrap_content"
      android:background="@drawable/layout_a" > <!-- your required code -->
    </Button>

答案 4 :(得分:0)

更改此行:

button2.setBackgroundColor(Color.BLUE);

试试这个:

button2.setBackgroundColor(Color.parseColor("#5AC8E2"));