1. 程式人生 > >ImageLoader獲取本地快取圖片的bitmap

ImageLoader獲取本地快取圖片的bitmap

在初始化imageoption的時候,如果我們呼叫了.cacheInMemory()和.cacheOnDisc(),載入圖片使用這個Option,圖片載入完成以後就會快取到記憶體和本地儲存中;

這時候 如果是載入過的圖片,我們直接載入的時候,出現的之前存的圖片,這樣就不會消耗流量。

不過有時候我們需要獲得圖片的尺寸等資訊,無法直接獲取,我們就需要獲取圖片的bitmap,但是我們又不願意重新再去下載圖片,這樣既消耗資源又消耗流量,得不償失,其實ImageLoader本身就為我們提供了獲取快取圖片的方法;

根據url獲取快取bitmap方法如下

 public static Bitmap getCacheImage(String uri){//這裡的uri一般就是圖片網址  
	        List<String> memCacheKeyNameList = MemoryCacheUtil.findCacheKeysForImageUri(uri , mImageLoader.getMemoryCache());    
	        if(memCacheKeyNameList != null && memCacheKeyNameList.size() > 0){  
	         
	            for(String each:memCacheKeyNameList){  
	            }  
	              
	            return mImageLoader.getMemoryCache().get(memCacheKeyNameList.get(0));  
	        }  
	          
	        return null;  
	    }  

此方法可以獲取記憶體快取中的bitmap,但是,記憶體中的圖片並不代表原圖,因為imageloader做了縮圖,按照這個拿來一般是不對的,這時候我們可以從本地儲存中獲取原始圖片快取,方法如下
public static Bitmap getDiscCacheImage(String uri){//這裡的uri一般就是圖片網址  
		 File file = DiscCacheUtil.findInCache(uri,  mImageLoader.getDiscCache());  
		 try {
			
			 String path= file.getPath();
			 return BitmapFactory.decodeFile(path);


		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}

		 
		 return null;  
	 }  

通過這個方法 我們就能獲取到原始尺寸的圖片了

相關推薦

ImageLoader獲取本地快取圖片bitmap

在初始化imageoption的時候,如果我們呼叫了.cacheInMemory()和.cacheOnDisc(),載入圖片使用這個Option,圖片載入完成以後就會快取到記憶體和本地儲存中; 這時候 如果是載入過的圖片,我們直接載入的時候,出現的之前存的圖片,這樣就不會消

Android Fresco獲取本地快取圖片

相信大家用過Fresco的都知道Android一個非常強大的Fresco圖片載入框架自帶三級快取功能.1.Bitmap快取Bitmap快取儲存Bitmap物件,這些Bitmap物件可以立刻用來顯示或者用於後處理在5.0以下系統,Bitmap快取位於ashmem,這樣Bitma

小程式 | background-image無法獲取本地資源圖片

用background-image獲取本地資源圖片時,會出現以下報錯 官方文件寫明瞭本地資源無法通過 WXSS 獲取,但是可以用網路圖片,或者 base64 base64htt

關於fresco的使用之--CacheKey獲取本地快取

最近自己做了一個app涉及到分享圖片以及gif檔案,檢視過多個框架最終決定使用Facebook的fresco框架,功能很強大,具體可以看git連結https://github.com/desmond1121/Fresco-Source-Analysis。關於Fresco的說

react native 獲取本地靜態圖片解析度

線上圖片的寬高獲取直接用 Image.getSize(url, (_width, _height) => { }); 這個就不細說了。 剛找到一個獲取存在本地的靜態圖片寬高的方法 import { Image, } from 'react-native';

aardio中獲取網絡圖片經GDI處理後保存到本地

gsl mgo tel shanghai ans cde aam fma imei groovy%E4%B8%AD%E7%9A%84%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%93%8D%E4%BD%9C%E7%AC%A

實現拍照和獲取本地圖片功能

console flow dex eat struct xtend owa extends return /* @flow */ import React, { Component } from ‘react‘; import { View, Text, St

獲取遠程圖片保存到本地文件夾中

remote 重新 rem file 但是 sse 開始 創建 headers 1 /** 2 * 抓取遠程圖片到本地,可以抓取不帶有後綴的圖片 3 * @author YanYing <[email protected]> 4

獲取本地圖片/視訊

 獲取手機哩的照片或視訊 佈局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

Android之Glide獲取圖片Path和Glide獲取圖片Bitmap

今天主要研究了Glide獲取圖片Path、Bitmap用法,相信也困擾了大家很久,我在網上也找了很久,基本沒有,後來研究了下,也參考了下api文件,總結了以下幾個方式: 獲取Bitmap: 1)在圖片下載快取好之後獲取 Glide.with(mContext).load

ImageLoader 快取圖片 並配置全域性

//介面卡中的程式碼  //配置色彩模式為RGB_4444         DisplayImageOptions displayImageOptions = new DisplayImageOptions.Builder()   &n

關於富文字kindeditor中上傳本地圖片成功後獲取到的圖片路徑是相對路徑修改為絕對路徑

找到kindeditor外掛kindeditor-all.js有的或者是kindeditor.js,找到urltype的設定, K.options = {     designMode : true,

VUE 爬坑之旅 -- 封裝一個簡單的獲取本地圖片並壓縮上傳的元件

平時專案開發中,獲取本地圖片並壓縮上傳是一個很常見的需求,最典型的就是修改使用者頭像功能,今天就來封裝一個可以到處通過的元件。 首先分析需求,要達到什麼效果呢? 點選後開啟檔案選擇器,選擇檔案 對獲取的圖片檔案壓縮 前端能夠預覽獲取到的圖片 將壓縮後的圖片

Glide載入圖片並儲存到本地返回file,bitmap

不廢話,直接上程式碼 [java] view plain copy print?import android.content.Context;  import android.content.Intent;  import android.graphics.Bitmap;  import androi

史上最全選擇本地圖片和拍照上傳,超簡單解決獲取不到圖片問題

相信很多朋友做上傳圖片的時候都苦惱過獲取不到圖片,本篇部落格解決你的煩惱 這裡是選擇本地圖片 try { // 選擇本地檔案 Intent fileIntent = new Intent(

web本地客戶端快取圖片實現

瀏覽器快取是提高使用者體驗和提升程式效能的一個很重要的途徑,通過瀏覽器的快取控制,可以對實時性要求不高的資料進行快取,可以減少甚至不需要再次對伺服器的請求就可以顯示資料。 本文將介紹如果通過HTTP協議中的header來控制瀏覽器的快取行為,建議大家在看的時候寫程式碼試驗下,這樣對這些header的理解

針對單張大圖片本地快取,依賴於DClound平臺的H5+plus技術

需求 最近專案中遇到移動端首頁需要載入一些圖片,並且有些圖片很大並且更新不頻繁 原理 原理就是根據網路圖片的的url來判定本地是否存在該圖片,不存在就根據網路圖片的url下載該圖片,並把頁面上的圖片路徑替換成本地快取路徑;如果存在就直接使用本地圖片路徑。 準備 需要學習的

關於image標籤無法獲取本地圖片

If you have stored images in a path outside of the web container or in a database, then the client cannot access the images directly by a

微信小程式 本地資源圖片無法通過 WXSS 獲取,可以使用網路圖片,或者 base64,或者使用image標籤。

url('data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/4QMvaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3p