通过XML点击更改Android背景

有没有一种方法来指定将要应用onClick的XML文件中的Button的替代背景图像/颜色,还是我必须在Button.setBackground()执行Button.setBackground()

  • 我如何禁用ViewGroup的所有孩子的所有触摸事件?
  • 找不到方法onClick_Foo(View) - 第一次在Android Lollipop上运行
  • 点击后强制ListView项目保持“按下”状态?
  • Android:使用onClick在ListView Row中更改button背景
  • RecyclerView:获取位置并切换到活动
  • 事件OnClick用于自定义通知中的按钮
  • 仅为TextView复合drawable实现onClick
  • getCheckedRadioButtonId()返回无用的int?
  • 通过使用代码来改变图像

     public void onClick(View v) { if(v == ButtonName) { 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)); 

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

     public void onClick(View v) { if(v == ButtonName) { ButtonName.setBackgroundResource(R.drawable.ImageResource); } } 

    尝试:

     public void onclick(View v){ ImageView activity= (ImageView) findViewById(R.id.imageview1); button1.setImageResource(R.drawable.buttonpressed);} 
     public void methodOnClick(View view){ Button.setBackgroundResource(R.drawable.nameImage); } 

    我build议使用LinearLayout内的button来调整Linear的大小。