在onclick上更改imageview的背景图像

时间:2015-06-15 21:20:24

标签: android

我有imageview,当用户点击此图片时,我发现这个背景改变了这是我的代码

 btnImage =(ImageView) findViewById(R.id.image_button); 
 btnImage.setOnClickListener(new OnClickListener(){

       public void onClick(View arg0) {


       Intent i=new Intent(fierst.this,second.class);
       startActivity(i);

       }
   });

但我不知道如何在onclick上更改此背景图片

3 个答案:

答案 0 :(得分:2)

为什么单击时不使用Selctor ImageView

RES /抽拉/ selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/your_iamge_pressed"         android:state_pressed="true" />
<item android:drawable="@drawable/your_iamge_pressed"
  android:state_focused="true"
  android:state_enabled="true"
  android:state_window_focused="true"  />
<item android:drawable="@drawable/your_iamge_normal" />

在这里你ImageView将选择器设置为背景:android:background="@drawable/selector.xml"

<ImageView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:background="@drawable/selector.xml" />

OR USE TouchListener实现这样的想法 触摸时(向下操作)将一个图像设置为背景,当您释放时(Action Up)将另一个图像设置为背景。

这是代码

buttonONE.setOnTouchListener(new View.OnTouchListener(){
 @Override
 public boolean onTouch(View v, MotionEvent event) 
   {
   if(event.getAction() == MotionEvent.ACTION_DOWN) {

     buttonONE.setBackground(R.drawable.round_button_focus);


   } else if (event.getAction() == MotionEvent.ACTION_UP) {

     buttonONE.setBackground(R.drawable.round_button_unfocused);
      //  *******start Intent here********
   }
  }
};

答案 1 :(得分:0)

这是代码

  btnImage =(ImageView) findViewById(R.id.image_button); 
         btnImage.setOnClickListener(new OnClickListener(){

               public void onClick(View arg0) {

               btnImage.setBackgroundResource(R.drawable.ic_launcher);
             //put your image in drawable folder and change ic_luncher by your image.
               Intent i=new Intent(fierst.this,second.class);
               startActivity(i);


               }
           });

意图i =新意图(fierst.this,second.class);

<强> startActivity(ⅰ);

通过执行这两行,它将移动到第二个活动,因此您无法查看图像的更改结果。要查看图像更改的正确输出,请将这些行作为注释

希望这会有所帮助。谢谢

答案 2 :(得分:0)

我同意@sajidkhan的答案,但@zahra你错误地将选择器设置为背景错误。  在这里我将解释@ sajidkhan的答案,因为我知道他可能会在这里预期image.png等而不是selector.xml

 buttonONE.setBackground(R.drawable.round_button_focus);

round_button_focus 表示 round_button_focus.png 等,

MotionEvent.ACTION_DOWN设置一个背景,当你释放按钮时设置另一个背景,例如。 MotionEvent.ACTION_UP 按照@sajidkhan的建议,如果你觉得这对你有帮助,他的答案可能会被接受。