溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Android中Glide獲取圖片Path、Bitmap用法詳解

發(fā)布時間:2020-09-29 04:00:54 來源:腳本之家 閱讀:1073 作者:laozhang 欄目:移動開發(fā)

億速云在此之前給大家介紹過圖片加載框架Glide的基本用法介紹,大家可以先參考一下,本篇內(nèi)容更加深入的分析了Glide獲取圖片Path、Bitmap用法,以及實現(xiàn)的代碼分析。

1. 獲取Bitmap:

1)在圖片下載緩存好之后獲取

Glide.with(mContext).load(url).asBitmap().into(new SimpleTarget<Bitmap>() {
        @Override
        public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
          image.setImageBitmap(resource);
        }
      }); //方法中設(shè)置<span >asBitmap可以設(shè)置回調(diào)類型</span>

上面是簡單方法,下面有全面的方法,可以完美控制:

Glide.with(mContext).load(url).asBitmap().into(new Target<Bitmap>() { 
        @Override 
        public void onLoadStarted(Drawable placeholder) { 
        } 
        @Override 
        public void onLoadFailed(Exception e, Drawable errorDrawable) { 
        } 
        @Override 
        public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) { 
           //TODO set bitmap 
        } 
        @Override 
        public void onLoadCleared(Drawable placeholder) { 
        } 
        @Override 
        public void getSize(SizeReadyCallback cb) { 
        } 
        @Override 
        public void setRequest(Request request) { 
        } 
        @Override 
        public Request getRequest() { 
          return null; 
        } 
        @Override 
        public void onStart() { 
        } 
        @Override 
        public void onStop() { 
        } 
        @Override 
        public void onDestroy() { 
        } 
      });

2)通過url獲取

Bitmap myBitmap = Glide.with(applicationContext) 
  .load(yourUrl) 
  .asBitmap() //必須 
  .centerCrop() 
  .into(500, 500) 
  .get()

2. 獲取圖片緩存路徑

FutureTarget<File> future = Glide.with(mContext) 
          .load("url") 
          .downloadOnly(500, 500); 
      try { 
        File cacheFile = future.get(); 
        String path = cacheFile.getAbsolutePath(); 
      } catch (InterruptedException e) { 
        e.printStackTrace(); 
      } catch (ExecutionException e) { 
        e.printStackTrace(); 
      }

注意:這段代碼需要在線程中執(zhí)行,否則會保存,目前我還沒整理出統(tǒng)一的方法回調(diào),回頭再研究研究。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI