-1

---在安卓应用程序中---

单击按钮后,其背景颜色将更改为所需。再次点击,其颜色将恢复原色。

如何实施?

任何回复,谢谢!

==================================================== ================================= 更新:从网络上,我找到了一种方法来实现这一目标。在 xml 中设计一个可绘制的颜色,如下所示:

<drawable name="button_checked">#ffff0000</drawable>  

在活动中,使用以下代码获取可绘制对象:

Resources resource = getBaseContext().getResources();
checked_drawable = resource.getDrawable(R.drawable.button_checked);

在 onClick 函数中,根据一个布尔变量:

 setBackgroundDrawable(checked_mDrawable)

设置按钮背景。

4

3 回答 3

0

在你的 js 文件中放

$('#button').toggleClass('bg');

在你的 css 中,有你的常规按钮 css 样式

#button { background: white; }

然后添加

#button.bg { background: red; }

所以当他们点击按钮时,它会变成背景红色,如果他们再次点击它,它会变回白色。

使用您想要的任何颜色/网址作为背景。

于 2013-07-18T02:53:12.623 回答
0

您只需要创建一个状态列表可绘制资源,如下所示:

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

    <item android:drawable="@drawable/btn_login_pressed" android:state_pressed="true"/>
    <item android:drawable="@drawable/btn_login_normal" android:state_pressed="false"/>

</selector>

更新: 也许您希望效果为 RadioButton,这是一个示例:

    <RadioButton
       android:id="@+id/tab_communication"
       android:layout_width="wrap_content"
       android:layout_height="40dp"
       android:layout_weight="1"
       android:background="@null"
       android:button="@null"
       android:drawableTop="@drawable/category_communication"
       android:paddingBottom="5dp"
       android:paddingTop="5dp" />

可绘制/category_communication.xml:

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

    <item android:drawable="@drawable/category_communication_checked" android:state_checked="true"/>
    <item android:drawable="@drawable/category_communication_normal" android:state_checked="false"/>

 </selector>

ToggleButton是另一种选择。

于 2013-07-18T02:58:33.300 回答
0

你可以在代码中动态地做到这一点(我不知道如何在 xml 中配置它)。

boolean flag=true;
Button button=(Button)findViewById(R.id.button);
oncreate()
{
    button.setBackgroundResource(R.drawable.first_time_click);
    button.setOnClickListener(new OnClickListener()
    {
    public void onClick(View v)
    {
        if (flag)
        {
            button.setBackgroundResource(R.drawable.odd_time_click);        
        }else
        {
           button.setBackgroundResource(R.drawable.even_time_click);
        }
        flag=!flag;
    }
    });
}
于 2013-07-18T03:07:27.780 回答