单击按钮更改两个不同的背景

时间:2013-09-28 17:56:06

标签: android button background

使用android工作室我正在处理一个按钮,我希望每次我点击它按钮的背景改变,当我没有,有另一个背景。我不知道该怎么做,你能帮助我吗?

2 个答案:

答案 0 :(得分:2)

Xml布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:id="@+id/main" >
<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Change"
    android:onClick="changeBack" />

</LinearLayout>

将此代码添加到您的活动

public boolean firstImage = true;
public void changeBack(View view)
{
    if (firstImage)
        ((LinearLayout)findViewById(R.id.main)).setBackgroundResource(R.drawable.secondimage);
    else
        ((LinearLayout)findViewById(R.id.main)).setBackgroundResource(R.drawable.firstimage);
    firstImage = !firstImage;
}

答案 1 :(得分:1)

在项目的/res/drawable文件夹中创建一个xml文件。如果/ res目录中不存在名为drawable的文件夹,请创建它。例如,将xml文件命名为button_bg.xml

将以下代码复制并粘贴到button_bg.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_pressed="true" android:drawable="@drawable/drawable_when_pressed" />
  <item android:drawable="@drawable/default_drawable" />
</selector>

drawable_when_presseddefault_drawable是您想要用作按钮背景的可绘制资源。按下按钮时,按钮的背景将为drawable_when_pressed。否则,它将是default_drawable

您将此drawable(button_bg.xml)设置为按钮的背景。以下是如何使用它:

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/button_bg"
    android:text="Button" />

这是状态列表drawable的一个非常基本的形式。您可以在此处详细了解:Link