android图片button更改图片OnClick

我只是在res文件夹下添加了一个新的可绘制文件夹。 在drawable文件夹中,我从drawable-hdpi文件夹复制了ic_launcher.png文件。 当我按下button时,我想要更改标准的ImageButton图像。 我写了一些代码,但是当我启动应用程序崩溃。

Button imgButton; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.imgButton).setOnClickListener(imgButtonHandler); } View.OnClickListener imgButtonHandler = new View.OnClickListener() { public void onClick(View v) { imgButton.setBackgroundResource(R.drawable.ic_launcher); } }; 

编辑:我改变了这一点,这也不起作用。

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imgButton = (Button) findViewById(R.id.imgButton); imgButton.setOnClickListener(imgButtonHandler); } View.OnClickListener imgButtonHandler = new View.OnClickListener() { public void onClick(View v) { imgButton.setBackgroundResource(R.drawable.ic_launcher); } }; 

编辑2:这个作品。 谢谢大家。

 ImageButton button; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button= (ImageButton)findViewById(R.id.imgButton); button.setOnClickListener(imgButtonHandler); } View.OnClickListener imgButtonHandler = new View.OnClickListener() { public void onClick(View v) { button.setBackgroundResource(R.drawable.ic_launcher); } }; 

  • 如何保持在android中的图像button的长宽比?
  • 有没有办法在Android RelativeLayout中填充父母减去一个固定的数字?
  • OnClickListener无法parsing为types(Eclipse)
  • ImageButton中的透明背景具有涟漪效应?
  • android Imagebutton更改图像OnClick
  • 如何删除ImageButton的标准背景图片?
  • Android:如何防止在ImageView或ImageButton中缩放图像?
  • Android中的ImageButton
  • 这误导了我一点 – 它应该是“setImageResource”,而不是“setBackgroundResource” :)!

    以下工作正常:

     ImageButton btn = (ImageButton)findViewById(R.id.imageButton1); btn.setImageResource(R.drawable.actions_record); 

    而在使用setBackgroundResource ,实际的图像button的图像保持在背景图像被改变时导致看起来丑陋的图像button对象

    谢谢。

    那是因为imgButton为空。 试试这个:

     findViewById(R.id.imgButton).setBackgroundResource(R.drawable.ic_action_search); 

    或者更容易阅读:

     imgButton = (Button) findViewById(R.id.imgButton); imgButton.setOnClickListener(imgButtonHandler); 

    然后在onClick: imgButton.setBackgroundResource(R.drawable.ic_action_search);

     <ImageButton android:src="@drawable/image_btn_src" ... /> 

    image_btn_src.xml

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

    你可以在你的XML文件中做到这一点:

     android:onClick="@drawable/ic_action_search" 

    你有button到你的imgButtonvariables:

     public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imgButton = (Button) findViewById(R.id.imgButton); imgButton.setOnClickListener(imgButtonHandler); }