Skip to content

Commit 7774ca9

Browse files
author
huangshuisheng
committed
更新readme
1 parent 020933f commit 7774ca9

File tree

7 files changed

+43
-23
lines changed

7 files changed

+43
-23
lines changed

LOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# UPDATE LOG
22

3+
## 2017-05-02
4+
5+
* 解决fresco获取bitmap总是被标记为recycled的问题
6+
* 获取的bitmap也能自动应用上高斯模糊,圆角,圆形,解决glide中bitmap的黑边问题(bitmap转换过程中设置为RGB8888,因为RGB565会损失透明通道)
7+
* 修正glide的初始化方式
8+
9+
## 2017-05-01
10+
11+
* glide与fresco分包,分别引用.
12+
* 彻底解决大图预览,尤其是轮播预览的bug.加上了各种状态显示
13+
314
## 2017-03-27
415

516
1.添加GlideLoader,以及入口处切换loader的功能(便于调试)

README.md

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,16 @@
22

33
图片加载框架的api封装
44

5-
api设计参考glide,目前底层依赖fresco和glide,可自由切换.如果要用其他图片加载框架,实现ILoader接口即可.
5+
6+
7+
## 特点
8+
9+
* api设计参考glide,链式调用
10+
* 目前底层依赖fresco和glide,直接gradle改一下就切换了
11+
* 能够以同样api获取bitmap,所设置的宽高,高斯模糊,圆角或圆形效果均生效.
12+
* 解决了fresco最新版中,获取到的bitmap是recycled,不能用的问题
13+
* 基于subsampling-scale-image-view的大图预览功能,带进度和失败状态,能轮播,极致的高清无码,更重要的是非常省内存,绝不泄漏
14+
* 丰富便捷的api: 暂停和继续图片加载,获取磁盘缓存大小和清空缓存,响应内存事件等等.
615

716

817

@@ -109,9 +118,9 @@ ImageLoader.with(this)
109118
.ignoreCertificateVerify(boolean ignoreCertificateVerify)
110119
```
111120

112-
## 传入宽高,用于resize,以节省内存
121+
## 传入宽高,用于resize,以节省内存(必传参数)
113122

114-
> 一般,传如用于显示的那个view的宽高就行,单位为dp.内部已自行转换为px
123+
> 一般,传如用于显示的那个view的宽高就行,单位为dp.内部会自行转换为px
115124
>
116125
> 框架能根据这两个参数去把图片流解压成这个大小的bitmap,可以节约内存空间
117126
@@ -194,7 +203,7 @@ into(View targetView)
194203

195204
## 或者,只拿bitmap引用
196205

197-
> 此时,scale的配置是无效的,因为没有view去给它展示
206+
> 此时,scale的配置是无效的,因为没有view去给它展示. 而其他设置的宽高,高斯模糊,圆角或圆形效果,都能生效,最终给你一个你想要的bitmap
198207
199208
```
200209
asBitmap(BitmapListener bitmapListener)
@@ -210,6 +219,7 @@ asBitmap(BitmapListener bitmapListener)
210219

211220
```
212221
ImageLoader.loadBigImage(BigImageView imageView,String path)
222+
213223
//说明: path可以是网络url,文件路径或者content://格式的路径
214224
当是网络url时,注意应该以http开头,这里内部不提供拼接功能
215225
```
@@ -218,19 +228,19 @@ ImageLoader.loadBigImage(BigImageView imageView,String path)
218228

219229
暂未提供自定义设置的功能
220230

221-
![placeholder](G:\projects\android\hss01248\ImageLoader\pics\placeholder.jpg)
231+
![placeholder](pics/placeholder.jpg)
222232

223-
![progress](G:\projects\android\hss01248\ImageLoader\pics\progress.jpg)
233+
![progress](pics/progress.jpg)
224234

225-
![error](G:\projects\android\hss01248\ImageLoader\pics\error.jpg)
235+
![error](pics/error.jpg)
226236

227237

228238

229239

230240

231241
## 加载多张大图:
232242

233-
> 用户只需要传入单纯的viewPager应用,框架会替调用者设置好特定的adapter.
243+
> 用户只需要传入单纯的viewPager对象,框架会替调用者设置好特定的adapter.
234244
>
235245
> pageradapter内部只构建4个BigImageView,滑动时复用此view,则对应的bitmap能够被不断回收.
236246
@@ -330,11 +340,6 @@ ImageLoader.with(this)
330340
```
331341

332342

333-
# todo
334-
fresco和glide分包引用
335-
glide无法获取到圆角bitmap--transformation包无效果?
336-
337-
338343

339344

340345

@@ -359,15 +364,12 @@ Add it in your root build.gradle at the end of repositories:
359364

360365
```
361366
dependencies {
362-
compile 'com.github.hss01248.ImageLoader:image:1.0.1'
367+
compile 'com.github.hss01248.ImageLoader:frescoloader:1.0.2'//如果使用fresco
368+
compile 'com.github.hss01248.ImageLoader:glideloader:1.0.2'//如果使用glide
363369
}
364370
```
365371

366-
> 如果使用fresco: 再添加: compile 'com.github.hss01248.ImageLoader:frescoloader:1.0.1'
367-
368-
369372

370-
> 如果使用glide: 再添加 : compile 'com.github.hss01248.ImageLoader:glideloader:1.0.1'
371373

372374

373375

app/src/main/java/com/hss01248/imageloaderdemo/BaseApp.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public class BaseApp extends Application {
1717
@Override
1818
public void onCreate() {
1919
super.onCreate();
20-
ImageLoader.init(getApplicationContext(), 40,new GlideLoader());
20+
ImageLoader.init(getApplicationContext(), 100,new GlideLoader());
2121
LeakCanary.install(this);
2222
MyToast.init(this,true,true);
2323
//Logger.initialize(new Settings());

glideloader/src/main/java/com/hss01248/glideloader/GlideLoader.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
import com.bumptech.glide.DrawableTypeRequest;
1717
import com.bumptech.glide.Glide;
18+
import com.bumptech.glide.MemoryCategory;
1819
import com.bumptech.glide.RequestManager;
1920
import com.bumptech.glide.load.Transformation;
2021
import com.bumptech.glide.request.animation.GlideAnimation;
@@ -51,12 +52,13 @@
5152
public class GlideLoader implements ILoader {
5253
@Override
5354
public void init(Context context, int cacheSizeInM) {//glide默认最大容量250MB的文件缓存
55+
Glide.get(context).setMemoryCategory(MemoryCategory.NORMAL);
5456
/*Glide.get(context).setMemoryCategory(MemoryCategory.NORMAL);
5557
GlideBuilder builder = new GlideBuilder(context);
5658
builder.setDecodeFormat(DecodeFormat.PREFER_ARGB_8888);
5759
5860
builder.setDiskCache(new InternalCacheDiskCacheFactory(context, GlobalConfig.cacheFolderName,cacheSizeInM*1024*1024));*/
59-
BigImageViewer.initialize(GlideImageLoader.with(context));
61+
BigImageViewer.initialize(GlideImageLoader.with(context,MyUtil.getClient(GlobalConfig.ignoreCertificateVerify)));
6062

6163
}
6264

glideloader/src/main/java/com/hss01248/glideloader/GlideModelConfig.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import com.bumptech.glide.module.GlideModule;
99
import com.hss01248.image.config.GlobalConfig;
1010

11+
import java.io.File;
12+
1113
/**
1214
* Created by Administrator on 2017/5/2 0002.
1315
*/
@@ -17,7 +19,8 @@ public class GlideModelConfig implements GlideModule {
1719
public void applyOptions(Context context, GlideBuilder builder) {
1820
// builder.setDecodeFormat(DecodeFormat.PREFER_ARGB_8888);
1921

20-
builder.setDiskCache(new DiskLruCacheFactory( GlobalConfig.cacheFolderName,GlobalConfig.cacheMaxSize*1024*1024));
22+
builder.setDiskCache(new DiskLruCacheFactory(new File(context.getCacheDir(), GlobalConfig.cacheFolderName).getAbsolutePath(),
23+
GlobalConfig.cacheMaxSize*1024*1024));
2124
}
2225

2326
@Override

glideloader/src/main/java/com/hss01248/glideloader/big/GlideImageLoader.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ public void onLoadCleared(Drawable placeholder) {
9696
public void onLoadFailed(Exception e, Drawable errorDrawable) {
9797
super.onLoadFailed(e, errorDrawable);
9898
Log.e("onloadfailed","onLoadFailed --"+ uri.toString());
99+
if(e!=null)
100+
e.printStackTrace();
99101
EventBus.getDefault().post(new ErrorEvent(uri.toString()));
100102
}
101103

image/src/main/java/com/hss01248/image/config/GlobalConfig.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,12 @@ public static void init(Context context,int cacheSizeInM,ILoader imageLoader){
7171
/**
7272
* lrucache 最大值
7373
*/
74-
public static int cacheMaxSize= 50;
74+
public static int cacheMaxSize= 150;
7575

7676
/**
7777
* 缓存文件夹
7878
*/
79-
public static String cacheFolderName = "frescoCache";
79+
public static String cacheFolderName = "imageCache";
8080

8181
/**
8282
* bitmap是888还是565编码,后者内存占用相当于前者一般,前者显示效果要好一点点,但两者效果不会差太多

0 commit comments

Comments
 (0)