티스토리 뷰
Glide로 이미지를 불러올 때, 애니메이션을 추가해주고 싶었다.
상황은 N개의 이미지를 순차적으로 4초마다 반복해서 보여주는 상황이고, 이미지가 전환될 때마다 crossFade 효과를 주고 싶다.
단, crossFade를 그냥 주면 crossFade가 실행될 때 뒷배경이 드러나므로, 이전의 이미지는 유지한 채로 crossFade 효과를 줄 것이다.
결론부터 말하면, N > 2 클 때는 가능하다.
그러나 N == 2 불가능하다.
N > 2 일 때 어떻게 적용하느냐.
1. GlideApp을 Generate 한다.
2. .placeholder(이전 이미지)
3. .transition(DrawableTransitionOptions.withCrossFade())
4. .listener(~ onResourceReady(...) {
이전 이미지 = resource;
}
하면 placeholder에 이전의 이미지가 남아있어서 이전 이미지가 유지한 채로, transition에서 crossFade효과가 발생한다.
N == 2 일 때는, Glide가 같은 ImageView에 requests 될 때, 이전에 존재하던 requests를 지워버려서 transition이 제대로 작동을 못한다는데, 솔직히 잘 이해를 못하겠다. 그래서 결국엔 나도 imageView를 두 개 깔아서 위에 있는 imageView에 Fade 애니메이션을 주는 것으로 마무리했다.
'개발 > 안드로이드' 카테고리의 다른 글
Android Dialog (0) | 2017.10.12 |
---|---|
Android Data Binding (0) | 2017.10.12 |
Android ButterKnife 적용 (0) | 2017.10.11 |
VideoView animation (0) | 2017.09.29 |
Block auto back up (0) | 2017.09.26 |
댓글