diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2015-10-18 16:01:22 +0900 |
---|---|---|
committer | Kazuki Yamaguchi <k@rhe.jp> | 2015-10-18 16:01:22 +0900 |
commit | a00d7d855fd09fbb8050f42a349348871d60f454 (patch) | |
tree | f5787e92fc3405735f9a8894a01162a15bb03b81 /app/src/main | |
parent | 54afd383b7fc241b7cb430244e07e0cdd108acc4 (diff) | |
download | SmileEssence-a00d7d855fd09fbb8050f42a349348871d60f454.tar.gz |
ImageCache: ディスクキャッシュを使う
Diffstat (limited to 'app/src/main')
-rw-r--r-- | app/src/main/java/net/lacolaco/smileessence/data/ImageCache.java | 61 |
1 files changed, 27 insertions, 34 deletions
diff --git a/app/src/main/java/net/lacolaco/smileessence/data/ImageCache.java b/app/src/main/java/net/lacolaco/smileessence/data/ImageCache.java index 823a07b7..124ae6d1 100644 --- a/app/src/main/java/net/lacolaco/smileessence/data/ImageCache.java +++ b/app/src/main/java/net/lacolaco/smileessence/data/ImageCache.java @@ -26,66 +26,59 @@ package net.lacolaco.smileessence.data; import android.graphics.Bitmap; import android.util.LruCache; +import com.android.volley.Cache; import com.android.volley.RequestQueue; -import com.android.volley.VolleyError; import com.android.volley.toolbox.*; +import net.lacolaco.smileessence.Application; -public class ImageCache implements ImageLoader.ImageCache { +public class ImageCache { // ------------------------------ FIELDS ------------------------------ private static ImageCache instance = new ImageCache(); - private LruCache<String, Bitmap> cache; private RequestQueue requestQueue; private ImageLoader imageLoader; // -------------------------- STATIC METHODS -------------------------- private ImageCache() { - int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024); - int cacheSize = maxMemory / 8; - cache = new LruCache<>(cacheSize); - requestQueue = new RequestQueue(new NoCache(), new BasicNetwork(new HurlStack())); - imageLoader = new ImageLoader(requestQueue, this); + int cacheSizeInBytes = 64 * 1024 * 1024; // 64MB + Cache diskCache = new DiskBasedCache(Application.getInstance().getCacheDir(), cacheSizeInBytes); + requestQueue = new RequestQueue(diskCache, new BasicNetwork(new HurlStack())); + imageLoader = new ImageLoader(requestQueue, new ImageLruCache()); requestQueue.start(); } - // --------------------------- CONSTRUCTORS --------------------------- - public static ImageCache getInstance() { return instance; } - // ------------------------ INTERFACE METHODS ------------------------ - - - // --------------------- Interface ImageCache --------------------- + // -------------------------- OTHER METHODS -------------------------- - @Override - public Bitmap getBitmap(String url) { - return cache.get(url); + public void setImageToView(String imageURL, NetworkImageView view) { + view.setImageUrl(imageURL, imageLoader); } - @Override - public void putBitmap(String url, Bitmap bitmap) { - cache.put(url, bitmap); - } + private static class ImageLruCache implements ImageLoader.ImageCache { + private LruCache<String, Bitmap> cache; - // -------------------------- OTHER METHODS -------------------------- + // -------------------------- STATIC METHODS -------------------------- - public ImageLoader.ImageContainer requestBitmap(String imageURL) { - return imageLoader.get(imageURL, new ImageLoader.ImageListener() { - @Override - public void onResponse(ImageLoader.ImageContainer response, boolean isImmediate) { - } + private ImageLruCache() { + long memoryBytes = Runtime.getRuntime().maxMemory(); + int maxCount = (int) (memoryBytes / (8 * 1024)); + cache = new LruCache<>(maxCount); + } + // --------------------- Interface ImageCache --------------------- - @Override - public void onErrorResponse(VolleyError error) { - } - }); - } + @Override + public Bitmap getBitmap(String url) { + return cache.get(url); + } - public void setImageToView(String imageURL, NetworkImageView view) { - view.setImageUrl(imageURL, imageLoader); + @Override + public void putBitmap(String url, Bitmap bitmap) { + cache.put(url, bitmap); + } } } |