35

有没有办法为要应用的 XML 文件中的 Button 指定替代背景图像/颜色onClick,还是我必须在Button.setBackground()其中做一个onClickListener

4

5 回答 5

105

使用代码更改图像:

public void onClick(View v) {
   if(v.id == R.id.button_id) {
     ButtonName.setImageResource(R.drawable.ImageName);
   }
}

或者,使用 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/login_selected" /> <!-- pressed -->
  <item android:state_focused="true"
   android:drawable="@drawable/login_mouse_over" /> <!-- focused -->
  <item android:drawable="@drawable/login" /> <!-- default -->
</selector>

OnClick中,只需添加以下代码:

ButtonName.setBackgroundDrawable(getResources().getDrawable(R.drawable.ImageName));
于 2010-11-08T16:36:55.580 回答
7

在最新版本的 SDK 中,您将使用该setBackgroundResource方法。

public void onClick(View v) {
   if(v == ButtonName) {
     ButtonName.setBackgroundResource(R.drawable.ImageResource);
   }
}
于 2013-01-25T20:52:36.210 回答
2
public void methodOnClick(View view){

Button.setBackgroundResource(R.drawable.nameImage);

}

我建议使用 LinearLayout 内的按钮来调整线性的大小。

于 2015-05-11T20:20:26.447 回答
1

尝试:

public void onclick(View v){
            ImageView activity= (ImageView) findViewById(R.id.imageview1);
        button1.setImageResource(R.drawable.buttonpressed);}
于 2013-06-17T04:48:10.143 回答
0

我用它来更改按钮的背景

            button.setBackground(getResources().getDrawable(R.drawable.primary_button));

“button”是保存我的Button的变量,背景中设置的图像是primary_button

于 2020-02-11T18:42:09.557 回答