title: View.setVisibility(View.INVISIBLE) does not work for animated view
body: <p>I have an activity that (when started) shows some coachmark views (All ImageButtons) on screen that indicate how the app should be used (function of certain buttons, swipe behaviour, etc). A fade out animation is associated with each of these views that triggers after some predefined interval. This works as expected. However, I would like those marks to disappear earlier if the user interacts with the activity in a certain way. When these actions are triggered I cancel the animations and call<code>setVisibility(View.INVISIBLE);</code> on the coachmark views. However, the visibility of the view does not change. I have experimented with other techniques - removing the view from the parent and setting alpha to 0 and these work fine but altering view visibility does nothing.</p>
  
  <p>The code that sets up the coachmark looks as follows:</p>
  
  <pre><code>private void animateCoachmark(int id) {
      AlphaAnimation animation = new AlphaAnimation(1.0f, 0.0f);
      final View view = findViewById(id);
      animation.setStartOffset(10000);
      animation.setDuration(500);
      animation.setAnimationListener(new AnimationListenerBase(null) {
        @Override
        public void onAnimationEnd(Animation animation) {
          view.setVisibility(View.INVISIBLE);
        }
      });
      view.startAnimation(animation);
      coachmarkViews.add(view);
    }
  </code></pre>
  
  <p>The problematic code to change visiblity:</p>
  
  <pre><code>for (final View coachmarkView : coachmarkViews) {
    Animation animation = coachmarkView.getAnimation();
    if (animation != null) {
      animation.cancel();
    }
    coachmarkView.setVisibility(View.INVISIBLE);
  }
  </code></pre>