Glide框架
Android Glide4 非同步圖片框架
介紹:
Glide是一個面向Android快速和高效的開源媒體管理(open source media management )和圖片載入(image loading )的框架,使用指定的介面很容易在一個案例中實現媒體解碼(media decoding),記憶體(memory)和磁碟快取(disk caching),資源池(resource pooling)的功能。
Glide支視三種型別的資源:視訊,圖片,動畫GIF,對其進行獲取,解碼,顯示操作。Glide擁有靈活的API,允許開發人員自定義新增網路堆疊(Network stack)。Glide預設使用HttpUrlConnection的網路堆疊,也可以使用Google的Volley庫和Squareas的OkHttp庫來替代。
Glide的主要重點是平滑和快速的滾動任何型別的影象列表。同時,Glide也高效的適用於這些情況,例如:獲取,調整大小,顯示遠端影象。
配置Glide:
在Gradle中引入:
compile 'com.github.bumptech.glide:glide:4.0.0-RC0' annotationProcessor 'com.github.bumptech.glide:compiler:4.0.0-RC0'
若是使用Glide 以前版本,下載靜態的jar包,點選版本下載。
在專案中proguard中混淆規則:
-keep public class * implements com.bumptech.glide.module.GlideModule -keep public class * extends com.bumptech.glide.AppGlideModule -keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** { **[] $VALUES; public *; } # for DexGuard only -keepresourcexmlelements manifest/application/meta-data@value=GlideModule
注意點:在最新V4版本中,若是AppGlideModule子類中isManifestParsingEnabled()返回false,則不需要AndroidManifest.xml中配置GlideModule。
更多配置規則,請閱讀 Configuration wiki 。
How do I Use Glide?
這裡列舉兩個簡單Glide V4使用案例。
單個ImageView使用Glide載入網路上的百度圖片:
public void onCreate(Bundle savedInstanceState) { ... ImageView imageView = (ImageView) findViewById(R.id.my_image_view); Glide.with(this).load("https://www.baidu.com/img/bd_logo1.png").into(imageView); }
RecyclerView中ImageView使用Glide’s generated API,AppGlideModule的配置未貼出 :
@Override public void onBindViewHolder(ViewHolder holder, int position) { MovieData movieData = list.get(position); holder.getTitle().setText(movieData.getTitle()); imageLoader.loadImage(movieData.getImages(),holder.getNetworkImageView()); //載入未獲取圖片之前的空白圖片,發生異常的圖片,圖片資源 GlideApp.with(context) .load(movieData.getImages()) .placeholder(R.mipmap.ic_launcher) .error(R.mipmap.ic_launcher) .into(holder.getNetworkImageView()); }
更多詳情,請閱讀GitHub wiki 和 javadocs,以及。
Status(狀態):
在3.0 分支上的Version 3是一個穩定的公開版本,用於Google的多個開源專案,包括 Android Camera app 和2014年的Google IO app。當前版本4 是在分支中開發。
Compatibility(相容):
Android SDK :Glide最低要求API 10
OkHttp 2.x : 這裡是有自行選擇可用的依賴 okhttp- integration庫 , 請閱讀 Integration Libraries 頁面.
OkHttp 3.x : 這裡是有自行選擇可用的依賴 okhttp3- integration庫 , 請閱讀 Integration Libraries 頁面.
Volley : 這裡是有自行選擇可用的依賴 volley- integration庫 , 請閱讀 Integration Libraries 頁面.
Round Pictures :
CircleImageView/CircularImageView/RoundedImageView已經知道的問題,結合使用TransitionDrawable ( .crossFade() 和 .thumbnail() 或者 .placeholder() )和動畫GiF,解決方式:使用在v4庫下的BitmapTransformation( .circleCrop() )或者 .dontAnimate().
Huge Images(maps,comic strips) :
Glide可以通過低階採用(downsampling)來載入大圖片,但是不支援縮放和平滑 ImageView ,因為他們需要特殊資源優化(例如 平鋪)來工作,才能避免OutOfMemoryErrors。
資源參考:
Glide 專案: https://github.com/bumptech/glide
Glide wiki : https://github.com/bumptech/glide/wiki
各種官方案例:
Flickr案例:在Flick的公共API中,使用者搜尋關鍵字所匹配的影象,然後下載前幾百次命中,並以幾種不同的大小顯示它們。
Gallery案例:載入手機本地儲存的影象和視屏靜止影象,在RecyclerView水平滾動的顯示。
Giphy案例:使用Giphy`s的公開API來下載資料和流行的GIFs動畫,且在垂直列表中顯示他們。
SVG案例:通過Resources和網路載入SVG資料,且使用自定義的解碼器(custom decoder)和drawble來顯示SVG。
Google I/O案例:2014年Google I/O App使用Glide來實現各種場景下的使用。
相關文章
- Android框架之Volley與GlideAndroid框架IDE
- Android圖片快取框架GlideAndroid快取框架IDE
- android glide圖片載入框架AndroidIDE框架
- Android示例應用:開源框架Glide的使用Android框架IDE
- Android圖片載入-Glide4.0框架封裝AndroidIDE框架封裝
- glide使用IDE
- 【Glide】使用IDE
- 詳談高大上的圖片載入框架Glide -應用篇框架IDE
- 詳談高大上的圖片載入框架Glide -原始碼篇框架IDE原始碼
- Glide error 求解IDEError
- Glide 系列-3:Glide 快取的實現原理(4.8.0)IDE快取
- Glide 知識梳理(6) – Glide 原始碼解析之流程剖析IDE原始碼
- Glide 系列-1:預熱、Glide 的常用配置方式及其原理IDE
- Glide 知識梳理(6) - Glide 原始碼解析之流程剖析IDE原始碼
- Glide 快取流程IDE快取
- Android:Glide使用AndroidIDE
- Glide原始碼分析IDE原始碼
- Glide V4 框架新特性(Migrating from v3 to v4)IDE框架
- 詳談高大上的圖片載入框架Glide -原始碼篇| 掘金技術徵文框架IDE原始碼
- Glide中的快取IDE快取
- Glide載入進度IDE
- Glide原始碼導讀IDE原始碼
- kotlin使用Glide 4.0.0KotlinIDE
- 使用Glide以及OkHttp整合IDEHTTP
- Glide原始碼解析二---into方法IDE原始碼
- glide圖片載入原理IDE
- Glide詳細使用總結IDE
- Glide 不能說的祕密IDE
- Glide-原始碼詳解IDE原始碼
- Fresco、Glide、Picasso的比較IDE
- 包管理工具 glideIDE
- Glide範例原始碼分析IDE原始碼
- glide 結合goland的使用IDEGoLand
- GLide載入圖片還能這樣幹——基於Glide4.0完美封裝IDE封裝
- Flutter載入圖片與GlideFlutterIDE
- Glide4.5原始碼分析一IDE原始碼
- Glide 知識梳理(1) 基本用法IDE
- 改進版glide golang版本控制IDEGolang