2015-07-24 2 views
1

Я хочу создать ImageView в классе обслуживания. Я хочу погасить изображение, когда пользователь щелкнул по нему. Я пробую под кодом:Android исчезает с ImageView при нажатии

 ImageView chatHead = new ImageView(this); 
     chatHead.setImageResource(R.drawable.battery_20); 
     final Animation fadeOut = new AlphaAnimation(1, 0); 
     fadeOut.setInterpolator(new AccelerateInterpolator()); 
     fadeOut.setStartOffset(50); 
     fadeOut.setDuration(3000); 

     fadeOut.setAnimationListener(new Animation.AnimationListener() 
     { 
      public void onAnimationEnd(Animation animation) 
      { 
       chatHead.setVisibility(View.GONE); 
      } 
      public void onAnimationRepeat(Animation animation) {} 
      public void onAnimationStart(Animation animation) {} 
     }); 

     chatHead.setAnimation(fadeOut); 

     chatHead.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       chatHead.setVisibility(View.INVISIBLE); 

    } 
     }); 

Когда я нажимаю на изображение ImageView, он сразу исчезает!

ответ

0
chatHead.setVisibility(View.INVISIBLE); 

вам нужно, чтобы начать анимацию после предыдущей строки

fadeOut.start(); 

как

chatHead.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       chatHead.setVisibility(View.INVISIBLE); 
       fadeOut.start(); 

     } 
    }); 
+0

не работающий еще ... !! –

+0

Почему вы хотите скрыть изображение при нажатии кнопки? 'chatHead.setVisibility (View.INVISIBLE);' Почему бы не 'chatHead.setVisibility (View.VISIBLE);' – Gekkula

+0

sry, я не понимаю ваш вопрос! –

0

Это потому, что вы вызываете setVisibility(View.INVISIBLE); в изображении OnClickListener.

Пересмотрите ваш метод OnClickListener так:

chatHead.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       fadeOutAndHideImage(chatHead); 
      } 
     }); 

Определение fadeOutAndHideImage метод:

private void fadeOutAndHideImage(final ImageView img) 
    { 
    Animation fadeOut = new AlphaAnimation(1, 0); 
    fadeOut.setInterpolator(new AccelerateInterpolator()); 
    fadeOut.setDuration(1000); 

    fadeOut.setAnimationListener(new AnimationListener() 
    { 
      public void onAnimationEnd(Animation animation) 
      { 
        img.setVisibility(View.GONE); 
      } 
      public void onAnimationRepeat(Animation animation) {} 
      public void onAnimationStart(Animation animation) {} 
    }); 

    img.startAnimation(fadeOut); 
} 

См this post для справки.

+0

не работает .... !! –

+0

image not disapear never :( –

+0

не знаю? –