1. 程式人生 > >android glide 圖片載入框架使用

android glide 圖片載入框架使用

Glide 是一個 Android 上的圖片載入和快取庫,其目的是實現平滑的圖片列表滾動效果。

https://github.com/bumptech/glide

wiki:https://github.com/bumptech/glide/wiki

最近專案引入,glide圖片載入,由於對於該圖片載入的使用並不是很瞭解,因此,詳細看了下wiki並且分享給需要的同學。

1、基本的載入方法 
Glide.with(xxx.getContext())
                        .load(file)  //可以從本地圖片資源讀取,也可以從Url去載入。
                        .crossFade()//顯示漸變效果
                        .override(width, hight)//可以為圖片手動設定寬度高度,
                        // 當然你想載入原圖,使用override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
                        .into(xxx); 



2、通過URL直接在後臺下載圖片,該方法請在子執行緒裡執行。

public File downloadOriginalImage(String url) {
    if (TextUtils.isEmpty(url)) {
        return null;
    }
    FutureTarget<File> future = Glide.with(getActivity())
            .load(url)
            .downloadOnly(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL);
    try {
        //下載原圖超時 25秒
        return future.get(25L, TimeUnit.SECONDS);

    } catch (InterruptedException e) {
        e.printStackTrace();
    } catch (ExecutionException e) {
        e.printStackTrace();
    } catch (TimeoutException e) {
        e.printStackTrace();
    }
    return null;
}



3、glide全域性配置

配置比較簡單,只需要新增一個類並且實現了 GlideModule的介面

然後再AndroidManifest.xml 配置如下引數即可

<meta-data
android:name="xxx.FlyGlideModule" //請填寫具體的class完整路徑
android:value="GlideModule" />

public class FlyGlideModule implements GlideModule {
    public static final int yourSizeInBytes_disk=1024*1024*50;//預設50M本地快取
    public static final int yourSizeInBytes_memory=1024*1024*15;//預設15M記憶體
    @Override
    public void applyOptions(Context context, GlideBuilder builder) {
        builder.setDiskCache(new DiskLruCacheFactory(new DiskLruCacheFactory.CacheDirectoryGetter() {
            @Override public File getCacheDirectory() {
                return new File(FlyEnvironment.IMAGE_CACHE);
            }
        }, yourSizeInBytes_disk));

        builder.setMemoryCache(new LruResourceCache(yourSizeInBytes_memory));
    }



    @Override
    public void registerComponents(Context context, Glide glide) {

    }
}

4、圖片載入暫停,重啟(適用於ViewPage 或者Fragement的一些情況)

一、對於Viewpage,當我們有多個子Fragement的時候,我們需要當前頁面的時候才開啟圖片載入,其他頁面不可見的時候,暫停圖片載入。

這個時候可以重寫 Fragement的setUserVisibleHint方法,

 @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        try {
            if(isVisibleToUser){
                Glide.with((Fragment) this).resumeRequests();
            }else{
                Glide.with((Fragment)this).pauseRequests();
            }
        }catch (IllegalArgumentException e){

        }

    }


二、對於其他情況 可以再生命週期裡做處理

比如: Activity 或者Fragement的 

onStart  ,onStop裡面 做處理

相關推薦

android glide 圖片載入框架使用

Glide 是一個 Android 上的圖片載入和快取庫,其目的是實現平滑的圖片列表滾動效果。 https://github.com/bumptech/glide wiki:https://github.com/bumptech/glide/wiki 最近專案引入,glid

Android 三大圖片載入框架的對比——ImageLoader,Picasso,Glide

一、ImageLaoder介紹    << Universal ImageLoader 是很早開源的圖片快取,在早期被很多應用使用多執行緒下載圖片,圖片可以來源於網路,檔案系統,專案資料夾assets中以及drawable中等支援隨意的配置ImageLoader,

Android studio 圖片載入框架Glide介紹及使用

在泰國舉行的谷歌開發者論壇上,谷歌為我們介紹了一個名叫 Glide 的圖片載入庫,作者是bumptech。這個庫被廣泛的運用在google的開源專案中,包括2014年google I/O大會上釋出的官方app。 優點: 1,載入速度快 2,使用簡單 3,功能強大 4,記憶體

glide圖片載入框架使用總結

<span style="font-family:SimSun; font-size:18px"><span style="line-height:24.05px; background-color:transparent"></span></span><

Android圖片載入框架Picasso的使用

技術要點 基本顯示(非同步載入,圖片壓縮,圖片快取) 載入中和載入錯誤的圖片顯示 設定圖片尺寸(Resize)、縮放(Scale)和裁剪(Crop) 圖片旋轉 設定轉換器 取消預設的記憶體快取 設定快取指示器 請求優先順序設定 圖片還未加載出來時取消

Android圖片載入框架Picasso原始碼解析

個人開發的微信小程式,目前功能是書籍推薦,後續會完善一些新功能,希望大家多多支援! 前言 picasso是Square公司開源的一個Android圖形快取庫,地址http://square.github.io/picasso/,可以實現圖片下載和快取功能。僅

Android 三大圖片載入框架比較

1.哪三大圖片載入框架? 1) Picasso 2) Glide 3) Fresco 2.介紹: Picasso :和Square的網路庫一起能發揮最大作用,因為Picasso可

Android 進階】圖片載入框架Glide

生活 cannot 簡單介紹 style codes 詳細 npr 濾鏡 ive 簡單介紹 在泰國舉行的谷歌開發人員論壇上,谷歌為我們介紹了一個名叫 Glid

Android圖片載入框架最全解析(四),玩轉Glide的回撥與監聽(筆記)

參考原文:Android圖片載入框架最全解析(四),玩轉Glide的回撥與監聽 回撥的原始碼實現 的Target物件傳入到GenericRequest當中,而Glide在圖片載入完成之後又會回撥GenericRequest的onResourceReady()方法,onReso

Android圖片載入框架最全解析(五),Glide強大的圖片變換功能(筆記)

參考原文:Android圖片載入框架最全解析(五),Glide強大的圖片變換功能 一個問題 百度這張logo圖片的尺寸只有540258畫素,但是我的手機的解析度卻是10801920畫素,而我們將ImageView的寬高設定的都是wrap_content,那麼圖片的寬度應該只有

Android圖片載入框架最全解析(三),深入探究Glide的快取機制(筆記)

原文地址:Android圖片載入框架最全解析(三),深入探究Glide的快取機制 筆記: 1.Glide快取簡介 2.快取Key EngineKey 重寫了equals()和hashCode()方法,保證只有傳入EngineKey的所有引數都相同的情況下才認為是

Android圖片載入框架最全解析(七),實現帶進度的Glide圖片載入功能(筆記)

參考原文:Android圖片載入框架最全解析(七),實現帶進度的Glide圖片載入功能 擴充套件目標 對Glide進行功能擴充套件,使其支援監聽圖片下載進度的功能 開始 dependencies { compile 'com.github.bumptech.glid

Android圖片載入框架最全解析(六),探究Glide的自定義模組功能(筆記)

參考原文:Android圖片載入框架最全解析(六),探究Glide的自定義模組功能 自定義模組的基本用法 自定義模組功能可以將更改Glide配置,替換Glide元件等操作獨立出來,使得我們能輕鬆地對Glide的各種配置進行自定義,並且又和Glide的圖片載入邏輯沒有任何交集,

Android 圖片載入框架Glide用法

最近有個需求是,要將 url 地址傳過來的圖片載入到ImageView中,幾番折騰後找到 Glide,真的很好用,所以做下筆記 轉載:https://www.cnblogs.com/guilin-hu/p/5706916.html 在泰國舉行的谷歌開發者論壇上,谷歌為我們介紹了一個名叫&nb

Android-淺談Glide的原始碼-優雅的圖片載入框架(一)

摘要 網上GLide的原始碼分析文章太多了,以至於我自己看的時候都不知道從哪看,最近正好有時間整理一下文件。首先要肯定的一點是,我必須承認,Glide原始碼我沒讀完,相比較volley等框架的原始碼,Glide的原始碼在我看來更是一個極其複雜的設計,雖然它的使用時很簡單,但

Android圖片載入框架最全解析(五),Glide強大的圖片變換功能

                       本文同步發表於我的微信公眾號,掃一掃文章底部的二維碼或在微信搜尋 郭霖 即可關注,每天都有文章更新。大家好,又到了學習Glide的時間了。前段時間由於專案開發緊張,再加上後來又生病了,所以停更了一個月,不過現在終於又可以恢復正常更新了。今天是這個系列的第五篇文章,

Android圖片載入框架最全解析(一),Glide的基本用法

現在Android上的圖片載入框架非常成熟,從最早的老牌圖片載入框架UniversalImageLoader,到後來Google推出的Volley,再到後來的新興軍Glide和Picasso,當然還有Facebook的Fresco。每一個都非常穩定,功能也都十分強大。但是它們

Android圖片載入框架最全解析(一)Glide的基本用法

現在Android上的圖片載入框架非常成熟,從最早的老牌圖片載入框架UniversalImageLoader,到後來Google推出的Volley,再到後來的新興軍Glide和Picasso,當然還有Facebook的Fresco。每一個都非常穩定,功能也都

Android圖片載入框架Glide用法

轉載地址: 在泰國舉行的谷歌開發者論壇上,谷歌為我們介紹了一個名叫 Glide 的圖片載入庫,作者是bumptech。這個庫被廣泛的運用在google的開源專案中,包括2014年google I/O大會上釋出的官方app。 它的成功讓我非常感興趣。我花了一整晚的時間把

Android 圖片載入框架 Volley框架原始碼 以及Picasso和Glide比較

首先了解一下,它是封裝了HTTPConnection和HTTPClient類的一個框架, 適用於資料量少但是通訊頻繁的情況,如載入圖片; 就拿StringRequest(用來請求字串的)舉例: Volley的順序是 :  Http請求-------再接受響應   只