{"id":11734,"date":"2022-09-28T09:58:16","date_gmt":"2022-09-28T04:28:16","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-android-display-images-when-offline-once-downloaded-using-fresco\/"},"modified":"2022-09-28T09:58:16","modified_gmt":"2022-09-28T04:28:16","slug":"solved-android-display-images-when-offline-once-downloaded-using-fresco","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-android-display-images-when-offline-once-downloaded-using-fresco\/","title":{"rendered":"[Solved] Android display images when offline once downloaded using fresco"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-40490523\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"40490523\" data-parentid=\"40484538\" data-score=\"2\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>Fresco caches images for you. If you are offline, the images should still be displayed. You should not need to do anything.<\/p>\n<p>However, when the cache is cleared (e.g. when the user presses the button or when device space is low), images are obviously deleted from the cache &#8211; which is the desired behavior that should not be changed.<\/p>\n<p>There are 2 options: save selected items, move the cache<\/p>\n<h1>Save selected items<\/h1>\n<p>If you want to persist <strong>selected images<\/strong> (e.g. a &#8220;Save&#8221; button), you can get the encoded image and save it somewhere on the device.<br \/>\nYou <strong>should not do this for all images<\/strong> since they will be on the disk 2 times and clearing the cache \/ uninstalling the app will leave 1 copy on the device.<\/p>\n<p>Something like this could work:<\/p>\n<pre><code>DataSource&lt;CloseableReference&lt;PooledByteBuffer&gt;&gt;\n    dataSource = Fresco.getImagePipeline().fetchEncodedImage(imageRequest, callerContext);\ndataSource.subscribe(new BaseDataSubscriber&lt;CloseableReference&lt;PooledByteBuffer&gt;&gt;() {\n  @Override\n  protected void onNewResultImpl(DataSource&lt;CloseableReference&lt;PooledByteBuffer&gt;&gt; dataSource) {\n    CloseableReference&lt;PooledByteBuffer&gt; encodedImage = dataSource.getResult();\n    if (encodedImage != null) {\n      try {\n        \/\/ save the encoded image in the PooledByteBuffer\n      } finally {\n        CloseableReference.closeSafely(encodedImage);\n      }\n    }\n  }\n\n  @Override\n  protected void onFailureImpl(DataSource&lt;CloseableReference&lt;PooledByteBuffer&gt;&gt; dataSource) {\n    \/\/ something went wrong\n  }\n}, executorService);\n<\/code><\/pre>\n<p>}<\/p>\n<p>More information on how to use the pipeline to get the encoded image: <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/frescolib.org\/docs\/using-image-pipeline.html\">http:\/\/frescolib.org\/docs\/using-image-pipeline.html<\/a><\/p>\n<h1>Move the cache<\/h1>\n<p><strong>Keep in mind that this will persist the cache when it is moved to an external directory, so be careful since this will leave files when the app is uninstalled.<\/strong><\/p>\n<p>Fresco also allows you to supply a custom <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/facebook\/fresco\/blob\/master\/imagepipeline-base\/src\/main\/java\/com\/facebook\/cache\/disk\/DiskCacheConfig.java\"><code>DiskCacheConfig<\/code><\/a> and you can create a new <code>DiskCacheConfig.Builder<\/code> and call <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/facebook\/fresco\/blob\/master\/imagepipeline-base\/src\/main\/java\/com\/facebook\/cache\/disk\/DiskCacheConfig.java#L179\"><code>setBaseDirectoryPath(File)<\/code><\/a> to change the path to a different folder (e.g. one on the SD card) and you can also change the directory name with <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/facebook\/fresco\/blob\/master\/imagepipeline-base\/src\/main\/java\/com\/facebook\/cache\/disk\/DiskCacheConfig.java#L168\"><code>setBaseDirectoryName(String)<\/code><\/a><\/p>\n<p>More information on how Fresco does caching: <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/frescolib.org\/docs\/caching.html\">http:\/\/frescolib.org\/docs\/caching.html<\/a><\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">4<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved Android display images when offline once downloaded using fresco <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] Fresco caches images for you. If you are offline, the images should still be displayed. You should not need to do anything. However, when the cache is cleared (e.g. when the user presses the button or when device space is low), images are obviously deleted from the cache &#8211; which is the desired behavior &#8230; <a title=\"[Solved] Android display images when offline once downloaded using fresco\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-android-display-images-when-offline-once-downloaded-using-fresco\/\" aria-label=\"More on [Solved] Android display images when offline once downloaded using fresco\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[452,3209],"class_list":["post-11734","post","type-post","status-publish","format-standard","hentry","category-solved","tag-android","tag-fresco"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] Android display images when offline once downloaded using fresco - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-android-display-images-when-offline-once-downloaded-using-fresco\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Android display images when offline once downloaded using fresco - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] Fresco caches images for you. If you are offline, the images should still be displayed. You should not need to do anything. However, when the cache is cleared (e.g. when the user presses the button or when device space is low), images are obviously deleted from the cache &#8211; which is the desired behavior ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-android-display-images-when-offline-once-downloaded-using-fresco\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-28T04:28:16+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-android-display-images-when-offline-once-downloaded-using-fresco\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-android-display-images-when-offline-once-downloaded-using-fresco\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Android display images when offline once downloaded using fresco\",\"datePublished\":\"2022-09-28T04:28:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-android-display-images-when-offline-once-downloaded-using-fresco\/\"},\"wordCount\":258,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"android\",\"fresco\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-android-display-images-when-offline-once-downloaded-using-fresco\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-android-display-images-when-offline-once-downloaded-using-fresco\/\",\"name\":\"[Solved] Android display images when offline once downloaded using fresco - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-09-28T04:28:16+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-android-display-images-when-offline-once-downloaded-using-fresco\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-android-display-images-when-offline-once-downloaded-using-fresco\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-android-display-images-when-offline-once-downloaded-using-fresco\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Android display images when offline once downloaded using fresco\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] Android display images when offline once downloaded using fresco - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-android-display-images-when-offline-once-downloaded-using-fresco\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Android display images when offline once downloaded using fresco - JassWeb","og_description":"[ad_1] Fresco caches images for you. If you are offline, the images should still be displayed. You should not need to do anything. However, when the cache is cleared (e.g. when the user presses the button or when device space is low), images are obviously deleted from the cache &#8211; which is the desired behavior ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-android-display-images-when-offline-once-downloaded-using-fresco\/","og_site_name":"JassWeb","article_published_time":"2022-09-28T04:28:16+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-android-display-images-when-offline-once-downloaded-using-fresco\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-android-display-images-when-offline-once-downloaded-using-fresco\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Android display images when offline once downloaded using fresco","datePublished":"2022-09-28T04:28:16+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-android-display-images-when-offline-once-downloaded-using-fresco\/"},"wordCount":258,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["android","fresco"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-android-display-images-when-offline-once-downloaded-using-fresco\/","url":"https:\/\/jassweb.com\/solved\/solved-android-display-images-when-offline-once-downloaded-using-fresco\/","name":"[Solved] Android display images when offline once downloaded using fresco - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-09-28T04:28:16+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-android-display-images-when-offline-once-downloaded-using-fresco\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-android-display-images-when-offline-once-downloaded-using-fresco\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-android-display-images-when-offline-once-downloaded-using-fresco\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Android display images when offline once downloaded using fresco"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/11734","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=11734"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/11734\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=11734"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=11734"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=11734"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}