본문 바로가기
안드로이드 프로그래밍

Glide 이미지 갱신되지 않는 오류 해결

by Loyal 2021. 4. 2.
반응형

Glide 라이브러리를 사용하던 중, ImageView의 이미지가 갱신이 되지 않는 현상이 생겼다.

 

  먼저 어플의 흐름에 대해서 설명하자면, 사진을 찍으면 해당 이미지를 다른 액티비티에서 Glide를 사용하여 띄우는 것이다. 그런데, 결과를 띄워주는 액티비티에서는 처음에 찍은 사진만 나타나고 그 이후로는 처음 찍은 사진이 나타나지 않았다.

 

  첫 번째로 시도해 본 방법은 찍은 사진을 보고 나서 뒤로 가기 버튼을 누를 때 사진을 삭제하는 것이었다. 현재 내가 만들고 있는 어플은 찍은 사진을 임시로 보여주는 역할만 하기 때문에 사진을 지워도 상관이 없었다. 그래서 onBackPressed() 함수를 override 하여 삭제도 해보았지만 달라지는 것이 없었다.

 

  두 번째로 시도해 본 방법은 Glide에서 캐시 관련 옵션을 설정해주는 것이었다. 결론적으로 이 설정을 건드리는 것이 맞았지만, 올바른 방법의 설정이 아니었다. v4로 업데이트 되면서 내용이 바뀐 것 같다.

 

내가 시도해본 Glide의 코드는 아래와 같았다.

Glide.with(this).load(img).diskCacheStrategy(DiskCacheStrategy.NONE).into(product_img_imageview)

 

하지만 제대로 적용이 되지 않았는데, 이에 대한 올바른 설정은 아래와 같다.

Glide.with(this).load(img).apply(
	RequestOptions()
        .skipMemoryCache(true)
        .diskCacheStrategy(DiskCacheStrategy.NONE)
	).into(imageview)

 

RequestOptions()으로 diskCacheStrategy 관련 옵션을 주어야했던 것이다. 여기서 ObjecteKey를 생성해주어야 한다고 한다. 위 코드가 너무 길다면 이렇게 해도 된다.

val options = RequestOptions().skipMemoryCache(true).diskCacheStrategy(DiskCacheStrategy.NONE))
Glide.with(this).load(img).apply(options).into(imageview)

 

반응형