Glide 新增圖片的簡單使用
一. 下載
在build.gradle中新增依賴:
compile 'com.github.bumptech.glide:glide:3.7.0'
- 1
需要support-v4庫的支援,如果你的專案沒有support-v4庫(專案預設已經添加了),還需要新增support-v4依賴:
compile 'com.android.support:support-v4:23.3.0'
- 1
然後配置混淆規則:
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
**[] $VALUES;
public *;
}
其中第一個混淆規則表明不混淆所有的GlideModule
。
如果需要的話,還需新增相應的許可權:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
二. 整合網路框架OkHttp(可選)
Glide的網路請求部分可以使用當前最流行的網路請求框架Volley或OkHttp,也可以通過Glide的ModelLoader介面自己寫網路請求。
Glide預設使用HttpUrlConnection
進行網路請求,為了讓APP保持一致的網路請求形式,可以讓Glide使用我們指定的網路請求形式請求網路資源,這裡我們選OkHttp (具有支援HTTP/2、利用連線池技術減少請求延遲、快取響應結果等等優點),需要新增一個整合庫:
//OkHttp 2.x
//compile 'com.github.bumptech.glide:okhttp-integration: [email protected]'
//compile 'com.squareup.okhttp:okhttp:2.7.5'
//OkHttp 3.x
compile 'com.github.bumptech.glide:okhttp3-integration:[email protected]'
compile 'com.squareup.okhttp3:okhttp:3.2.0'
注意:
1. OkHttp 2.x和OkHttp 3.x需使用不同的整合庫。
2. Gradle會自動將OkHttpGlideModule合併到應用的manifest檔案中。
3. 如果你沒有對所有的GlideModule
配置混淆規則(即沒有使用-keep public class * implements com.bumptech.glide.module.GlideModule
),則需要把OkHttp的GlideModule
進行防混淆配置:
-keep class com.bumptech.glide.integration.okhttp.OkHttpGlideModule
三. 使用
簡單使用:
Glide
.with(this)
.load("http://inthecheesefactory.com/uploads/source/nestedfragment/fragments.png")
.into(imageView);
Glide.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生命週期控制。
返回關聯了相應上下文的RequestManager
例項。
一. 下載
在build.gradle中新增依賴:
compile 'com.github.bumptech.glide:glide:3.7.0'
- 1
需要support-v4庫的支援,如果你的專案沒有support-v4庫(專案預設已經添加了),還需要新增support-v4依賴:
compile 'com.android.support:support-v4:23.3.0'
- 1
然後配置混淆規則:
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
**[] $VALUES;
public *;
}
其中第一個混淆規則表明不混淆所有的GlideModule
。
如果需要的話,還需新增相應的許可權:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
二. 整合網路框架OkHttp(可選)
Glide的網路請求部分可以使用當前最流行的網路請求框架Volley或OkHttp,也可以通過Glide的ModelLoader介面自己寫網路請求。
Glide預設使用HttpUrlConnection
進行網路請求,為了讓APP保持一致的網路請求形式,可以讓Glide使用我們指定的網路請求形式請求網路資源,這裡我們選OkHttp (具有支援HTTP/2、利用連線池技術減少請求延遲、快取響應結果等等優點),需要新增一個整合庫:
//OkHttp 2.x
//compile 'com.github.bumptech.glide:okhttp-integration:[email protected]'
//compile 'com.squareup.okhttp:okhttp:2.7.5'
//OkHttp 3.x
compile 'com.github.bumptech.glide:okhttp3-integration:[email protected]'
compile 'com.squareup.okhttp3:okhttp:3.2.0'
注意:
1. OkHttp 2.x和OkHttp 3.x需使用不同的整合庫。
2. Gradle會自動將OkHttpGlideModule合併到應用的manifest檔案中。
3. 如果你沒有對所有的GlideModule
配置混淆規則(即沒有使用-keep public class * implements com.bumptech.glide.module.GlideModule
),則需要把OkHttp的GlideModule
進行防混淆配置:
-keep class com.bumptech.glide.integration.okhttp.OkHttpGlideModule
三. 使用
簡單使用:
Glide
.with(this)
.load("http://inthecheesefactory.com/uploads/source/nestedfragment/fragments.png")
.into(imageView);
Glide.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生命週期控制。
返回關聯了相應上下文的RequestManager
例項。