###运用在安卓开发上提供本地(相机,相册,剪裁,文件),缓存,网络三方图片的快速开发库
Android:15~24
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
dependencies {
compile 'com.github.Zane96:EasyImage:v1.0.3-beta'
}
-
相机或者相册中获得图片:
Step1.
EasyImage easyImage = EasyImage.creat(new ImageProviderBuilder().with(this).useCamera().useCrop(500,500) .setGetImageListener("bitmap", new OnGetImageListener() { @Override public void getDataBack(Object o) { imageViewProvide.setImageBitmap((Bitmap) o); } }));
Step2.
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); easyImage.onActivityResult(requestCode, resultCode, data); }
如果你希望在回调中获取URI,可以将OnGetImageListener中的第一个参数改为**“uri”**。
如果你希望从相册中获取图片,可以直接将useCamera()改为useAlbum()。
-
网络加载图片:
Step1.实现你自己项目里面的Application继承类,并做初始化工作,如下:
public class App extends Application{ int threadCount = Runtime.getRuntime().availableProcessors() + 1; @Override public void onCreate() { super.onCreate(); EasyImageLoadConfiguration.getInstance() .setLoadPolicy(new FILOPolicy()) .setThreadCount(threadCount) .init(this); } }
加载策略:你可以使用FILOPolicy先进后出加载策略,也可以使用FIFOPolicy先进后出加载策略。
Step2.
EasyImage.creat(new ImageLoadBuidler().with(this) .useLruCache() .setHolderPlace(R.drawable.ic_launcher) .setError(R.drawable.avatar) .load(Data.URLS[i]) .into(images[i])).execute();
缓存:你可以使用Disk缓存,Lru缓存,Disk+Lru缓存,无缓存以及自定义缓存。自定义缓存中你需要将你自己的缓存类实现ImageCache接口。
-增加BitmapPool,优化Bitmap内存复用。
- v1.0.3-beta:修复Android 24+文件共享权限修改导致的使用Intent传递File Uri报错的bug,修复RecycleView网络加载图片错位的Bug,解决思路可以参考我的这篇博客:RecycleView加载图片错位