[android] resize animation

지금하는 프로젝트에 검색어 입력란이 0에서 원래 크기로 점점 커지는 애니메이션을 넣어야 하는데, 내가 원래 뷰 애니메이션에 약하다보니 고생을 좀 많이 했다.

이상하게 애니메이션은 잘 이해도 안되고, 기억도 못 하겠네 ㅠㅠ

 

잘 안되는 코드가 많았는데, 다행히 이 코드는 잘 된다.

 

layoutSearch.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
  @Override
  public void onGlobalLayout() {
    ValueAnimator widthAnimator = ValueAnimator.ofInt(0, layoutSearch.getWidth());
    widthAnimator.setDuration(400);
    widthAnimator.setInterpolator(new DecelerateInterpolator());
    widthAnimator.addUpdateListener(animation -> {
      layoutSearch.getLayoutParams().width = (int) animation.getAnimatedValue();
      layoutSearch.requestLayout();
    });
    widthAnimator.start();

    layoutSearch.getViewTreeObserver().removeOnGlobalLayoutListener(this);
  }
});

출처: http://stackoverflow.com/a/43274313/1025379