aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2015-10-18 16:01:22 +0900
committerKazuki Yamaguchi <k@rhe.jp>2015-10-18 16:01:22 +0900
commita00d7d855fd09fbb8050f42a349348871d60f454 (patch)
treef5787e92fc3405735f9a8894a01162a15bb03b81
parent54afd383b7fc241b7cb430244e07e0cdd108acc4 (diff)
downloadSmileEssence-a00d7d855fd09fbb8050f42a349348871d60f454.tar.gz
ImageCache: ディスクキャッシュを使う
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/data/ImageCache.java61
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);
+ }
}
}