1

我有一个按钮,我想打开和关闭按钮,我需要的是我有两个背景图像。

当我第一次点击按钮时,应该完成第一个背景图像,第二次应该像切换按钮一样更改第二个背景图像。

任何人都请帮助我,因为我是 android 新手。

这是我的活动:

public class MainActivity extends Activity {

    private Button Button1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button1 = (Button) findViewById(R.id.Button1);
        Button1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                v.setBackgroundResource(R.drawable.ic_launcher);

            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}  

谢谢。

4

4 回答 4

1

使用以下代码在drawable中创建一个xml文件并将按钮的背景更改为此drawable

自定义按钮.xml

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

然后给图片添加背景

<ImageView
    android:layoutWidth="wrap_content"
    android:layoutWidth="wrap_content"
    android:background="@drawable/customButtom" />
于 2013-11-13T13:44:21.797 回答
0

您可以通过检查是否单击来维护setSelected状态并更改图像ButtonisSelectedButton

尝试使用

Button button = new Button(this);

        button.setOnClickListener(new OnClickListener()
        {

            @Override
            public void onClick(View v)
            {
                if (v.isSelected())
                {
                  v.setSelected(false);
                }
                else
                {
                  v.setSelected(true);
                }
            }
        });

让我知道这个是否奏效。

于 2013-11-13T13:28:05.250 回答
0

您可以使用 setTag 来做到这一点。

第一>

Button1.setTag("ON");

其次在你的 onclicklistener 添加这个:

if (v.getTag().toString().equals("ON")) {
            v.setTag("OFF");
             v.setBackgroundResource(R.drawable.ic_launcher);
        }else {
            v.setTag("ON");
             v.setBackgroundResource(R.drawable.ic_launcher2);
        }
于 2013-11-13T13:30:20.880 回答
0

使用ImageButton代替Button, 改变 ImageButton 表面上的图像的setImageResource(int)方法。

于 2013-11-13T13:36:38.467 回答