Android Glide 加載圖片


0.借鑒文章地址:http://blog.csdn.net/zivensonice/article/details/51835802 和 http://www.cnblogs.com/zhaoyanjun/p/5404162.html

1.導包:compile 'com.github.bumptech.glide:glide:3.7.0'

2.基本用法

  a.加載圖片:1)加載URL圖片:Glide.with(context).load(URL).into(mImageView);

        2)加載SD卡里的圖片-load(String string):Glide.with(context).load(Environment.getExternalStorageDirectory.getAbsolutePath() + "/temp.jpg").into(mImageView);

        3)加載SD卡里的圖片-load(File file):Glide.with(context).load(new File(Environment.getExternalStorageDirectory.getAbsolutePath() + "/temp.jpg")).into(mImageView);

        4)加載SD卡里的圖片-load(Uri uri):Glide.with(context).load(Uri.fromFile(new File(Environment.getExternalStorageDirectory.getAbsolutePath() + "/temp.jpg"))).into(mImageView);

        

  b.設置加載過程中的圖片:Glide.with(context).load(URL).placeHolder(mImageView1).into(mImageView2);

  c.設置加載失敗的圖片:Glide.with(context).load(URL).erro(mImageView1).into(mImageView2);

  d.設置切換圖片淡入淡出的效果:Glide.with(context).load(URL).crossFade().into(mImageView);

  e.切換圖片有淡入淡出效果,設置效果持續時間:Glide.with(context).load(URL).crossFade(3000).into(mImageView);

  f.設置改變圖片大小:Glide.with(context).load(URL).override(int width, int height).into(mImageView);

  g.設置圖片加載動畫:Glide.with(context).load(URL).animate(animate resource).into(mImageView);

  h.設置圖片加載優先級:Glide.with(context).load(URL).priority(Priority.LOW).into(mImageView);

             Glide.with(context).load(URL).priority(Priority.HIGH).into(mImageView);

  i.下載圖片(必須加入asBitmap/asGIF):Glide.with(context).load(URL).asBitmap().into(new SimpleTarget<Bitmap>(){

    @Override

    public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation){

      //保存方法

    }

  });

  j.設置背景圖片:Glide.with(context).load(URL).into(new SimpleTarget<Drawable>(int width, int height){

    @Override

    public void onResourceReady(Drawable resource, GlideAnimation<? super Drawable> glideAnimation){

      //設置背景圖片的方法,如:

      btn.setBackground(resource);

    }

  });

  k.設置加載圖片監聽器:Glide.with(context).load(URL).listener(new RequestListener<String, GlideBitmapDrawable>(){

    @Override

    public boolean onException(Exception e, String model, Target<GlideBitmapDrawable> target, boolean isFirstResource){

      //此處為加載圖片錯誤時的操作,返回true代表用戶自己處理,返回false代表交給Glide處理

      return false;        

    }

    @Override

    public voolean onResourceReady(GlideBitmapDrawable resource, String model, Target<GlideBitmapDrawable> target, boolean isFromMemoryCache, boolean isFirstResource){

      //此處為資源准備好時調用的方法,返回true表示時間將會被攔截,不再繼續傳遞下去;返回false表示事件會傳遞下去,一般為false

      return false;

    }

  }).into(mImageView);

  l.縮略圖:1)先加載原圖的十分之一作為縮略圖,然后再加載原圖:Glide.with(context).load(URL).thumbnail(0.1f).into(mImageView);

        2)把本地圖片作為縮略圖,然后再加載原圖:Glide.with(context).load(URL).thumbnail(Glide.with(context).load(image resource)).into(mImageView);

  ps:基本組合使用,如有特殊需求,在后面直接使用對應的方法即可,如:Glide.with(context).load(URL).placeHolder(image resource).error(image resource).into(mImageView);

3.其他使用方法

  a.清除內存緩存:Glide.get(context).clearMemory();

  b.清除磁盤緩存:Glide.get(context).clearDiskCache();

4.說明

  a.with的生命周期

    with(Context context):使用Application上下文,Glide請求將不受Activity/Fragment生命周期控制

    with(Activity activity). 使用Activity作為上下文,Glide的請求會受到Activity生命周期控制

    with(FragmentActivity activity).Glide的請求會受到FragmentActivity生命周期控制

    with(android.app.Fragment fragment).Glide的請求會受到Fragment 生命周期控制

    with(android.support.v4.app.Fragment fragment).Glide的請求會受到Fragment生命周期控制

  b.緩存

    1)默認緩存:在Glide源碼中有一個DiskCache接口,里面的Factory類定義了默認的磁盤緩存大小為:250 M , 緩存路徑在:image_manager_disk_cache 目錄下

    2)四種緩存模式:

      DiskCacheStrategy.SOURCE    緩存原圖

      DiskCacheStrategy.RESULT     緩存和imageview大小匹配的圖

      DiskCacheStrategy.ALL           既緩存原圖,有緩存和imageview大小匹配的圖

      DiskCacheStrategy.NONE        不做任何緩存

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM