diff options
Diffstat (limited to 'samples/browseable/ActivitySceneTransitionBasic/src/com.example.android.activityscenetransitionbasic/ImageMemoryCache.java')
| -rw-r--r-- | samples/browseable/ActivitySceneTransitionBasic/src/com.example.android.activityscenetransitionbasic/ImageMemoryCache.java | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/samples/browseable/ActivitySceneTransitionBasic/src/com.example.android.activityscenetransitionbasic/ImageMemoryCache.java b/samples/browseable/ActivitySceneTransitionBasic/src/com.example.android.activityscenetransitionbasic/ImageMemoryCache.java deleted file mode 100644 index 53d47bae1..000000000 --- a/samples/browseable/ActivitySceneTransitionBasic/src/com.example.android.activityscenetransitionbasic/ImageMemoryCache.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (C) 2014 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.example.android.activityscenetransitionbasic; - -import com.android.volley.toolbox.ImageLoader; - -import android.graphics.Bitmap; -import android.util.LruCache; - -import java.util.Map; - -/** - * An image memory cache implementation for Volley which allows the retrieval of entires via a URL. - * Volley internally inserts items with a key which is a combination of a the size of the image, - * and the url. - * - * This class provide the method {@link #getBitmapFromUrl(String)} which allows the retrieval of - * a bitmap solely on the URL. - */ -public class ImageMemoryCache extends LruCache<String, Bitmap> implements ImageLoader.ImageCache { - - /** - * Singleton instance which has it's maximum size set to be 1/8th of the allowed memory size. - */ - public static final ImageMemoryCache INSTANCE = new ImageMemoryCache( - (int) (Runtime.getRuntime().maxMemory() / 8)); - - // Cache the last created snapshot - private Map<String, Bitmap> mLastSnapshot; - - private ImageMemoryCache(int maxSize) { - super(maxSize); - } - - public Bitmap getBitmapFromUrl(String url) { - // If we do not have a snapshot to use, generate one - if (mLastSnapshot == null) { - mLastSnapshot = snapshot(); - } - - // Iterate through the snapshot to find any entries which match our url - for (Map.Entry<String, Bitmap> entry : mLastSnapshot.entrySet()) { - if (url.equals(extractUrl(entry.getKey()))) { - // We've found an entry with the same url, return the bitmap - return entry.getValue(); - } - } - - // We didn't find an entry, so return null - return null; - } - - @Override - public Bitmap getBitmap(String key) { - return get(key); - } - - @Override - public void putBitmap(String key, Bitmap bitmap) { - put(key, bitmap); - - // An entry has been added, so invalidate the snapshot - mLastSnapshot = null; - } - - @Override - protected void entryRemoved(boolean evicted, String key, Bitmap oldValue, Bitmap newValue) { - super.entryRemoved(evicted, key, oldValue, newValue); - - // An entry has been removed, so invalidate the snapshot - mLastSnapshot = null; - } - - private static String extractUrl(String key) { - return key.substring(key.indexOf("http")); - } - - @Override - protected int sizeOf(String key, Bitmap value) { - return value.getAllocationByteCount(); - } -} |
