2015-06-15 10 views
0

У меня есть ImageView и я whant, когда пользователь нажимает эту ImageView на фоне этого изменилось это мой кодизменить фоновое изображение ImageView на OnClick

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 изменить фоновое изображение

ответ

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, его ответ, возможно, заслужил бы, как принято, если вы считаете, что это вам помогло.

+0

i скопируйте мою картинку png в файл с возможностью рисования, но у меня есть ошибка в setbackground, и мой аргумент говорит, что я должен изменить setbackground на другой метод :( – zahra

+0

изменить его на setBackgroundResource (R.drawable.your_image); надеюсь, что это поможет вам :) принять ответ, если вы решили проблему, –

2

Почему вы не используете Selctor для ImageView при нажатии.

Рез/рисуем/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" /> 

ИЛИ ИСПОЛЬЗОВАНИЯ TouchListener Чтобы реализовать такую ​​идею при прикосновении (Action Down) установите одно изображение в качестве фона, и когда вы отпустите (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******** 
    } 
    } 
}; 
+0

отредактировал ответ :), если вы хотите заменить изображения друг на друга при нажатии. – Sajidkhan

+0

У меня есть много кнопок, и у каждого из них есть разное изображение, сколько нужно написать selector xml? @Sajidkhan – zahra

+0

у каждого есть разные изображения bg? можете ли вы опубликовать пользовательский интерфейс, который вы хотите реализовать, я имею в виду экранный снимок? – Sajidkhan

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); 


       } 
      }); 

Намерение я = новый Intent (fierst.this, second.class);

startActivity (i);

, выполнив эти две строки, он переместится во вторую активность, чтобы вы не смогли увидеть результат для изменения изображения или нет. Чтобы увидеть правильный выход для изменения изображения делает эти строки как комментарий

Надеется, что это полезные .THANKS

+0

Я хочу увидеть результат измененного backgroud и перейти ко второму действию, как это сделать – zahra

+0

удалить код намерения, или вы можете использовать это во многих других способах, например, при прослушивании onClick на кнопке или любом другом событии, кроме этого изображения в событии onClick..ok @ zahra – sahulab

Смежные вопросы