2017-01-07 4 views
0

Я хотел бы установить изображение1 для кнопки, но при нажатии - изменить его на изображение2. После отпускания кнопка должна быть снова изображением1. Я пытался сделать это таким образом в OnClick() метод:Android - измените изображение ImageButton при нажатии и отпустите

button.setImageResource(R.drawable.image1); 
     if(button.isPressed()) 
      button.setImageResource(R.drawable.image2); 

но после первого нажатия на изображение кнопки изменяется на IMAGE2 и остался в этом роде.
Не могли бы вы помочь мне с этой проблемой?

ответ

0

Используйте следующее:

int dispImg = 0; 
button.setImageResource(R.drawable.image1); 
if (button.isPress()) { 
    if (dispImg == 0) { 
     button.setImageResource(R.drawable.image2); 
     dispImg = 1; 
    } 
    else if (dispImg == 1) { 
     button.setImageResource(R.drawable.image1); 
     dispImg = 0; 
    } 
} 

Пояснение: dispImg отслеживает изображения, которое вы показаны. Когда оно равно 0, это означает, что отображается 1-е изображение, и поэтому мы должны переключиться на 2-й.

Надеется, что я помог: D

2

Я думаю, что это то, что вы хотите:

MyCustomTouchListener myCustomTouchListener = new MyCustomTouchListener(); 
button.setOnTouchListener(myCustomTouchListener); 

Теперь MyCustomTouchListener:

class MyCustomTouchListener implement OnTouchListener { 
    public boolean onTouch(View v, MotionEvent event) 
    { 
     switch(event.getAction()){ 
      case MotionEvent.ACTION_DOWN: 
      // touch down code 
      button.setImageResource(R.drawable.image1); 
      break; 

      case MotionEvent.ACTION_MOVE: 
      // touch move code 
      break; 

      case MotionEvent.ACTION_UP: 
      // touch up code 
      button.setImageResource(R.drawable.image1); 
      break; 
     } 
     return true; 
    } 
} 
2

Вы можете легко сделать это с state list drawable, и не требует дополнительного Java-кода с вашей стороны (если вы не создаете StateListDrawable во время выполнения, но даже это более подходящий подход, чем реализация uch взаимодействия).