Android
बिटमैप कैश
खोज…
परिचय
मेमोरी कुशल बिटमैप कैशिंग: यह विशेष रूप से महत्वपूर्ण है यदि आपका एप्लिकेशन एनिमेशन का उपयोग करता है, क्योंकि उन्हें GC सफाई के दौरान रोका जाएगा और आपका एप्लिकेशन उपयोगकर्ता के लिए सुस्त दिखाई देगा। एक कैश उन वस्तुओं का पुन: उपयोग करने की अनुमति देता है जो बनाने के लिए महंगे हैं। यदि आप ऑब्जेक्ट को मेमोरी में लोड करते हैं, तो आप ऑब्जेक्ट के लिए कैश के रूप में सोच सकते हैं। एंड्रॉइड में बिटमैप के साथ काम करना मुश्किल है। यदि आप इसे बार-बार उपयोग करने जा रहे हैं, तो बिम को कैश करना अधिक महत्वपूर्ण है।
वाक्य - विन्यास
-
LruCache<String, Bitmap> mMemoryCache;//declaration of LruCache object.
- शून्य addBitmapToMemoryCache (स्ट्रिंग कुंजी, बिटमैप बिटमैप) {} // जेनेरिक विधि की घोषणा कैश मेमोरी में बिटमैप जोड़ने का
- बिटमैप getBitmapFromMemCache (स्ट्रिंग कुंजी) {} // कैश के लिए bimap प्राप्त करने के लिए सामान्य विधि की घोषणा।
पैरामीटर
पैरामीटर | विवरण |
---|---|
चाभी | मेमोरी कैश में बिटमैप स्टोर करने की कुंजी |
बिटमैप | बिटमैप मान जो मेमोरी में कैश करेगा |
एलआरयू कैश का उपयोग करके बिटमैप कैश
LRU कैश
निम्न उदाहरण कोड कैशिंग छवियों के लिए LruCache वर्ग के एक संभावित कार्यान्वयन को दर्शाता है।
private LruCache<String, Bitmap> mMemoryCache;
यहाँ स्ट्रिंग मान बिटमैप मान के लिए महत्वपूर्ण है।
// Get max available VM memory, exceeding this amount will throw an
// OutOfMemory exception. Stored in kilobytes as LruCache takes an
// int in its constructor.
final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);
// Use 1/8th of the available memory for this memory cache.
final int cacheSize = maxMemory / 8;
mMemoryCache = new LruCache<String, Bitmap>(cacheSize) {
@Override
protected int sizeOf(String key, Bitmap bitmap) {
// The cache size will be measured in kilobytes rather than
// number of items.
return bitmap.getByteCount() / 1024;
}
};
मेमोरी कैश में बिटमैप जोड़ने के लिए
public void addBitmapToMemoryCache(String key, Bitmap bitmap) {
if (getBitmapFromMemCache(key) == null) {
mMemoryCache.put(key, bitmap);
}
}
मेमोरी कैश से बिटमैप प्राप्त करने के लिए
public Bitmap getBitmapFromMemCache(String key) {
return mMemoryCache.get(key);
}
इमेजव्यू में बिटमैप लोड करने के लिए बस getBitmapFromMemCache ("पास कुंजी") का उपयोग करें।