問題
Androidの開発でFrescoを使ってることは多いと思う。
そのFrescoのSimpleDraweeViewを使用していた際、新しい画像をセットしても画面に反映されない現象に遭遇した。
解決方法
キャッシュを消す。(by stack overflow)
Fresco.getImagePipeline().evictFromMemoryCache(uri)
解決までの流れ
R1. 新しくセットするuriをBitmap化して、そのuriがセットしたい画像かをDebugで確認する
・ 下記コードでbitmap
変数を作成し、このコード直後にbreak pointを貼る。
val bitmap = MediaStore.Images.Media.getBitmap(contentResolver, uri)
R2. break pointで止まったら、ToolbarのDebugからbitmap
変数のView Bitmap
をクリックして画像を目視確認する。
R3. 画像がセットしたい画像なので、キャッシュを疑い消す。
R4. 解決。