Glide高階用法

2021-07-27 12:33:10 字數 2607 閱讀 7055

glidemodule使用:

glidemodule 是乙個抽象方法,全域性改變 glide 行為的乙個方式,通過全域性glidemodule 配置glide,用glidebuilder設定選項,用glide註冊modelloader等。

1.)自定義乙個glidemodule 

public

class myglidemodule implements

glidemodule

@override

public

void

registercomponents(context context, glide glide)

}

2.)androidmanifest.xml註冊

<

manifest

...>

<

...>

<

meta-data

android:name

="com.mypackage.myglidemodule"

android:value

="glidemodule"

/>

>

manifest

>

3.)新增混淆處理

-keepnames class com.mypackage.myglidemodule

# or more generally:

#-keep public class * implements com.bumptech.glide.module.glidemodule

4.)多個glidemodule衝突問題

glidemodule不能指定呼叫順序,所以應該避免不同的glidemodule之間有衝突的選項設定,可以考慮將所有的設定都放到乙個glidemodule裡面,或者排除掉某個manifest檔案的某個module,**如下:

<

meta-data

android:name

=」com.mypackage.myglidemodule」

tools:node

=」remove」

/>

1.)設定glide記憶體快取大小

int maxmemory = (int) runtime.getruntime().maxmemory();//

獲取系統分配給應用的總記憶體大小

int memorycachesize = maxmemory / 8;//

設定記憶體快取占用八分之一 //

設定記憶體快取大小

builder.setmemorycache(new lruresourcecache(memorycachesize));

獲取預設的記憶體使用計算函式

memorysizecalculator calculator = new

memorysizecalculator(context);

int defaultmemorycachesize =calculator.getmemorycachesize();

2.)設定glide磁碟快取大小

file cachedir = context.getexternalcachedir();//

指定的是資料的快取位址

int diskcachesize = 1024 * 1024 * 30;//

最多可以快取多少位元組的資料 //

設定磁碟快取大小

builder.setdiskcache(new disklrucachefactory(cachedir.getpath(), "glide", diskcachesize));

也可以通過如下兩種方式

//

存放在data/data/***x/cache/

builder.setdiskcache(

new internalcachediskcachefactory(context, "glide", diskcachesize));

//存放在外置檔案瀏覽器

builder.setdiskcache(

new externalcachediskcachefactory(context, "glide", diskcachesize));

3.)設定解碼格式

//

設定解碼格式

builder.setdecodeformat(decodeformat.prefer_argb_8888);

預設格式rgb_565使用記憶體是argb_8888的一半,但是質量就沒那麼高了,而且不支援透明度

4.)設定快取記憶體大小

//

5.)設定乙個用來檢索cache中沒有的resource的executorservice

為了使縮圖請求正確工作,實現類必須把請求根據priority優先順序排好序。

builder.setdiskcacheservice(executorservice service);

builder.setresizeservice(executorservice service);

glide中級高階

一 glide和circleimageview專案有衝突 直接使用glide切圓形即可 解決 放棄circleimageview,直接使用 glide切圓形。編寫了乙個工具類。複製 即可 將設定為圓形 public static void showimage final context contex...

Glide基本用法解析

glide是乙個載入的框架,功能比較強大,一般載入,我就會用這個框架。下面介紹一下基本用法。整理了郭霖大神的部落格,想看詳細的可以去看 開始dependencies然後在androidmanifest.xml中宣告一下網路許可權 android name android.permission.int...

glide的基本用法

1,新增依賴 implementation com.github.bumptech.glide glide 3.7.0 2,新增許可權 public void loadimage imageview view 2,load 方法用於指定待載入的資源。glide支援載入網路 本地 應用資源 二進位製流...