Glide(圖片非同步載入快取庫)的方法介紹
文章來源:http://blog.csdn.net/u011733020/article/details/52319283
Glide 在開源中國上的介紹
Glide : An image loading and caching library for Android focused on smooth scrolling
安卓上專注於平滑滑動的圖片載入和快取庫。 Glide有以下特點: 1.注重 list中的圖片在scroll狀態下的流暢性。 2.可以展示視訊影象,普通格式圖片和GIF格式。
獲取Glide
You can download a jar from GitHub's releases page.
Or use Gradle:
repositories { mavenCentral() // jcenter() works as well because it pulls from Maven Central } dependencies { compile 'com.github.bumptech.glide:glide:3.7.0' compile 'com.android.support:support-v4:19.1.0' }
How do I use Glide?
// For a simple view: @Override public void onCreate(Bundle savedInstanceState) { ... ImageView imageView = (ImageView) findViewById(R.id.my_image_view); Glide.with(this).load("http://goo.gl/gEgYUd").into(imageView); } // For a simple image list: @Override public View getView(int position, View recycled, ViewGroup container) { final ImageView myImageView; if (recycled == null) { myImageView = (ImageView) inflater.inflate(R.layout.my_image_view, container, false); } else { myImageView = (ImageView) recycled; } String url = myUrls.get(position); Glide .with(myFragment) .load(url) .centerCrop() .placeholder(R.drawable.loading_spinner) .crossFade() .into(myImageView); return myImageView; }可以看出Glide 的使用時相當簡便的,新增依賴後,僅僅通過Glide.with().load().into();就可以展示遠端圖片。 以上便是Github上關於Glide的基本介紹,接下來我們看具體的使用。
Glide 使用起來非常簡單,Glide 在Activity 、Fragment 中都可以使用,並且是通過繫結對應的物件去使用。
[java] view plain copy print?- Glide.with(this).load(url).into(imageView);
with() :使Glide 的生命週期與當前物件繫結,可以是Activity Fragment Context等等。 load():可以載入一個本地圖片,或者網路圖片地址,也可以是Android工程的 內部Resource 圖片資源。 into():將展示在ImageView 物件。 介紹一些常用的配置: Glide基本方法:Glide.with(this).load(R.mipmap.bigger).into(imageView);
載入網路圖片時顯示的佔位圖:.placeholder(holderId).into(imageView); 載入失敗時展示的失敗圖:.error(errorId).into(imageView);
淡入淡出的漸變展示過渡動畫:.crossFade().into(imageView);淡入淡出的漸變展示過渡動畫 crossFade(int millSeconds) 預設Glide是自動執行該方法的,淡入時間是300ms (可以自己傳int 引數去調整時間),如果要禁止該效果,可以呼叫dontAnimate() 方法按比例縮小或者放大到ImageView寬度,居中顯示:.fitCenter().into(imageView); 按比例放大圖片居中顯示,圖片的長/寬 可能大於ImageView的長/寬:.centerCrop().into(imageView);。 priority( Priority.HIGH ):設定請求的優先順序 由低到高分別為: Priority.LOW、 Priority.NORMAL、 Priority.HIGH 、 Priority.IMMEDIATE。
skipMemoryCache( true ) :是否設定不允許記憶體快取,如果是比較頻繁的變化,那麼可以不在記憶體中儲存,預設是false,即允許記憶體快取。
diskCacheStrategy():設定磁碟快取策略,因為預設情況下 Glide 不僅僅會快取遠端圖片,並且會快取適應當前View size的圖片。 引數為列舉型別 有四種分辨是: DiskCacheStrategy.NONE 什麼都不快取。
DiskCacheStrategy.SOURCE 僅僅只快取原來的全解析度的影象。
DiskCacheStrategy.RESULT 僅僅快取最終的影象,即,降低解析度後的(或者是轉換後的)。
DiskCacheStrategy.ALL 快取所有版本的影象(預設行為)。 override(int w,int h): 重新調整圖片的大小。Glide 載入圖片預設是適應ImageView的大小,呼叫該方法,可能導致圖片顯示小於ImageView的size。 縮圖:普通方式 .thumbnail(0.1f) 將原圖縮小到10%。使用該方法需要保證ImageView的ScaleType。 高階方式通過請求一個額外的Request去請求縮圖 [java] view plain copy print?
- privatevoid loadImageThumbnailRequest() {
- // setup Glide request without the into() method
- DrawableRequestBuilder<String> thumbnailRequest = Glide
- .with( context )
- .load( thumbnailUrl );
- // pass the request as a a parameter to the thumbnail request
- Glide
- .with( context )
- .load( UsageExampleGifAndVideos.gifUrl )
- .thumbnail( thumbnailRequest )
- .into( imageView);
- }
將圖片顯示在普通View上: [java] view plain copy print?
- public <T> void showImageOnCustomView(T t, String url, View view) {
- ViewTarget viewTarget = new ViewTarget<View, GlideDrawable>(view) {
- @Override
- publicvoid onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) {
- //>=API 16 this.view.setBackground(resource.getCurrent());
- this.view.setBackgroundDrawable(resource.getCurrent());
- }
- };
- Glide.with(context).load(url).into(viewTarget);
- }
屬性動畫animate(): 給圖片新增動畫,比如屬性動畫 translate、scale、alpha、rotate,又或者 Activity切換樣式 這種屬性動畫 android.R.anim.slide_in_left [java] view plain copy print?
- Glide
- .with( context )
- .load( url )
- .animate( android.R.anim.slide_in_left ) // or R.anim.zoom_in
- .into( imageView1 );
或者: [java] view plain copy print?
- ViewPropertyAnimation.Animator animationObject = new ViewPropertyAnimation.Animator() {
- @Override
- publicvoid animate(View view) {
- // if it's a custom view class, cast it here
- // then find subviews and do the animations
- // here, we just use the entire view for the fade animation
- view.setAlpha( 0f );
- ObjectAnimator fadeAnim = ObjectAnimator.ofFloat( view, "alpha", 0f, 1f );
- fadeAnim.setDuration( 2500 );
- fadeAnim.start();
- }
- };
- Glide
- .with( context )
- .load( url )
- .animate( animationObject )
- .into( imageView );
- publicclass BlurTransformation extends BitmapTransformation {
- private RenderScript rs;
- public BlurTransformation(Context context) {
- super( context );
- rs = RenderScript.create( context );
- }
- @Override
- protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {
- Bitmap blurredBitmap = toTransform.copy( Bitmap.Config.ARGB_8888, true );
- // Allocate memory for Renderscript to work with
- Allocation input = Allocation.createFromBitmap(
- rs,
- blurredBitmap,
- Allocation.MipmapControl.MIPMAP_FULL,
- Allocation.USAGE_SHARED
- );
- Allocation output = Allocation.createTyped(rs, input.getType());
- // Load up an instance of the specific script that we want to use.
- ScriptIntrinsicBlur script = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
- script.setInput(input);
- // Set the blur radius
- script.setRadius(10);
-
相關推薦
Glide(圖片非同步載入快取庫)的方法介紹
文章來源:http://blog.csdn.net/u011733020/article/details/52319283 Glide 在開源中國上的介紹 Glide 的詳細介紹:請點這裡Glide 的下載地址:請點這裡 Glide :
Android-Universal-Image-Loader 圖片非同步載入類庫的使用(超詳細配置)
這個圖片非同步載入並快取的類已經被很多開發者所使用,是最常用的幾個開源庫之一,主流的應用,隨便反編譯幾個火的專案,都可以見到它的身影。 可是有的人並不知道如何去使用這庫如何進行配置,網上查到的資訊對於剛接觸的人來說可能太少了,下面我就把我使用過程中
Universal-Image-Loader圖片非同步載入類庫
這是 一個開源的Android關於下載顯示圖片的工具類,在這個下載包裡面jar檔案,用於我們匯入專案使用,具體使用方法在包裡面也含有。下面是一個例子: 雙擊程式碼複製 1 2 <uses-permissionandroid:name="android.pe
Android經典面試問題:請你設計一套圖片非同步載入快取方案——圖片的三級快取
友情提示:文章最後附有專案原始碼現在,Android有很多優秀的圖片載入框架。例如:Picasso,Glide,Fresco。我們幾乎只要簡單呼叫幾句程式碼就可以很好的實現圖片的載入。很多時候也不需要我們親自去寫圖片載入方案。但是,學習圖片的三級快取策略無論是在面試時,還是對
Android-Image-Loader 圖片非同步載入類庫的使用超(詳細配置)
這個圖片非同步載入並快取的類已經被很多開發者所使用,是最常用的幾個開源庫之一,主流的應用,隨便反編譯幾個火的專案,都可以見到它的身影。 可是有的人並不知道如何去使用這庫如何進行配置,網上查到的資訊對於剛接觸的人來說可能太少了,下面我就把我使用
修改圖片載入框架Glide的快取路徑(可用於清理快取需求)
1.寫一個類實現 GlideModule public class GlideCacheMore implements GlideModule { private String path=Environment.getExternalStorageDirector
Android:android的框架區別(網路框架、圖片非同步載入與快取框架、資料框架)特點整理
在我們安卓開發中,很多繁瑣的程式碼會很頭疼,編寫程式的週期會增加,因此很多框架都冒出來了,我們在搞懂底層原理之時,我們更應該學會用一些優秀框架來解決複雜程式碼,和繁瑣的重寫程式碼。因為針對最簡單的case,我只需要提供request url,成功時的callba
Yii2.0-圖片上傳擴充套件(非同步載入縮圖) [擴充套件元件]
資源下載: 擴充套件下載(圖片上傳擴充套件-file_upload) 適用框架:Yii2.0高階版(基礎版使用需要適當修改) 效果展示: 配置好了之後效果展示:支援非同步載入縮圖 安裝擴充套件: 1.點選上面擴充套件下載下載擴充套件 然後重新命名為
Android開發之listview優化+圖片非同步載入+避免圖片顯示閃爍(修改版)
小鹿路過此地。。心熱之下寫寫Android開發中的listview運用(閒的沒事幹,改動了一點程式碼,但實現功能不變) 小鹿學Android開發已有兩年多了,總算有一點點小收穫,雖算不上大牛大神級人物,但有些東西可以和一家一起分享一起交流一起學習一起進步...。還有,望檢視
深入理解JS非同步程式設計五(指令碼非同步載入)
非同步指令碼載入 阻塞性指令碼 JavaScript在瀏覽器中被解析和執行時具有阻塞的特性,也就是說,當JavaScript程式碼執行時,頁面的解析、渲染以及其他資源的下載都要停下來等待指令碼執行完畢 瀏覽器是按照從上到下的順序解析頁面,因此正常情況下,J
爬蟲知識點(ajax非同步載入,JavaScript 動態重新整理,phantomjs + selenium模擬登陸)
JavaScript JavaScript 是網路上最常用也是支持者最多的客戶端指令碼語言。它可以收集 使用者的跟蹤資料,不需要過載頁面直接提交表單,在頁面嵌入多媒體檔案,甚至執行網頁遊戲。 Ajax 當你訪問一個網頁時 滑鼠向下滑 資料不斷的更新而http網址沒有變
Flash AS3.0載入外部資源(圖片、MP3、SWF)的兩種方式
關於AS3載入圖片等外部自言,大部分人常用的有兩種方式:Loader 和Embed ,各自的特點,總結如下: Embed :在Flash編譯階段就將資源嵌入,也就是說圖片資源是會被編譯進swf檔案裡面去的;這樣子的好處是程式碼比較簡潔,使用方便,也不存在載入順序的問題,缺點
Unity+NGUI打造網路圖片非同步載入與本地快取工具類(一)
我們在移動端的開發中,非同步網路圖片載入用的非常的多,在unity當中雖然有AssetBundle的存在,一般是先載入好遊戲資源然後再進入場景,但是還有不少地方能夠用到非同步網路圖片的載入以及其快取機制。 我之前也寫過兩個版本的ios中的非同步網路圖片載入helper類,所
cocos2d-x 菜鳥學習筆記三(圖片預載入與進度條)
在做遊戲時,會用於很多和圖片資源,包括角色,動畫,紋理貼圖……為了減少GPU和CPU的快取佔用以及圖片的重複利用,在遊戲開始時,都會預載入這些資源進入快取,在cocos2d-x裡用的是CCTextureCache這個類。其實,在cocos2d-x自帶的TestCpp裡有對應的例子,在裡面用的是: [c
Java異步執行多個HTTP請求的例子(需要apache http類庫)
ride 同步 conn done 例子 latch block org ftw 直接上代碼 package org.jivesoftware.spark.util; import java.io.IOException; import java.uti
KendoUI關於Grid頁面刷新賦值(不修改數據庫)
fresh 修改 png row -1 event var 技術 remove 1.Grid頁面某個字段修改賦值(不用刷新) var row = GG.data("kendoGrid").select(); var data = GG.data("kend
MM(主主數據庫)+keepalived主備高可用集群
數據庫 集群 mm 博客分享的第一篇技術文章; 項目主要搭建:主主數據庫高可用集群搭建。 數據庫互為主備,應用技術:MM+keepalived 使用的是虛擬機搭建的實驗向大家展示: 數據庫1:192.168.4.7 數據庫2:192.168.4.77 VIP:192.168.4.68 web1:
Intellij Idea中Jsp頁面不能訪問靜態資源(圖片、js、css)
tex 文件夾 nbsp 依然 技術分享 很多 路徑 contex mage 最近在學習Spring MVC框架。用Intellij Idea編譯器開發出現了很多因為不了解編譯器配置的問題。 這次是在main.jsp頁面中圖片標簽<img src="images/on
vue打包後出現靜態資源|(圖片,json數據)找不到路徑
CP 解決 png 路徑 分享圖片 分享 com 奇跡 public 最近在學習Vue是如何編寫項目的,在踩了許多坑後,終於要到了最後一步npm run build了,很開心的等待奇跡,然後打包後出現了找不到圖片路徑的問題。 解決辦法:1.將圖片或者json數據文件夾放到s
java基礎 第十六章(連接數據庫)
ID 循環 exec manage () result creat AS 新的 連接數據庫(JDBC接口) 步驟如下: 先到數據庫jar包。 1.加載驅動 Class.forName("包路徑"); 例:Class.forName("com.mysql.jd