本篇博客将介绍一下xUtils的图片模块,想要学习的小伙伴请先看第一篇注解模块完成第一第二步哦。
Android快速开发框架之xUtils—注解模块:
Android快速开发框架之xUtils—网络模块:
1.在布局文件中添加了5个ImageView用来显示加载的图片,准备5个或多个图片地址
private String[] url = {
"http://images.juheapi.com/jztk/c1c2subject1/1.jpg",
"http://images.juheapi.com/jztk/c1c2subject1/25.jpg",
"http://images.juheapi.com/jztk/c1c2subject1/48.jpg",
"http://images.juheapi.com/jztk/c1c2subject1/131.jpg",
"http://images.juheapi.com/jztk/c1c2subject1/154.jpg"};
2.第一种加载方式
x.image().bind(imageView01, url[0]);//第一个参数显示图片的imageview,第二个图片地址
3.第二种加载方式,为要加载的图片设置一些参数
ImageOptions options = new ImageOptions.Builder()
.setConfig(Bitmap.Config.RGB_565)//设置图片质量,这个是默认的
.setSquare(true)
.setCrop(true)//设置图片大小
.setSize(200, 200)//设置图片大小
.setFadeIn(true)//淡入效果
.setCircular(true)//展示为圆形
.build();
x.image().bind(imageView02, url[1], options);
4.ImageOptions 中所有的参数设置,仔细阅读哦
ImageOptions options = new ImageOptions.Builder()
.setConfig(Bitmap.Config.RGB_565)//设置图片质量,这个是默认的
.setFadeIn(true)//淡入效果
//需成对使用
.setCrop(true)//设置图片大小
.setSize(500, 500)//设置图片大小
.setAnimation()//设置动画
.setAutoRotate()//自动获取图片信息将照片旋转至正确角度
.setCircular(true)//展示为圆形
.setFailureDrawable()//当图片下载失败时。设置展示的图片
.setFailureDrawableId()//当图片下载失败时。设置展示的图片
.setForceLoadingDrawable(true)//设置为true时会显示正在加载的图片,否则不显示
.setLoadingDrawable()//图片正在加载时显示的默认图片
.setLoadingDrawableId()//图片正在加载时显示的默认图片
.setIgnoreGif()//是否忽略Gif图片
.setParamsBuilder(new ImageOptions.ParamsBuilder() {//添加请求参数
@Override
public RequestParams buildParams(RequestParams params, ImageOptions options) {
params.addBodyParameter("key", "value");
return params;
}
})
.setPlaceholderScaleType()//设置加载失败或是加载中图片的缩放
.setRadius()//设置拐角的弧度
.setSquare(true)//设置为正方形
.setUseMemCache()//设置缓存,默认为true
.build();
5.第三种方式,带有回调监听函数
x.image().bind(imageView03, url[2], new Callback.CommonCallback<Drawable>() {
@Override
public void onSuccess(Drawable result) {
//加载成功
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
//加载失败
}
@Override
public void onCancelled(CancelledException cex) {
//手动取消
}
@Override
public void onFinished() {
//加载完成,不管出错/成功都会回调
}
});
6.第四种方式,传入四个参数的构造方法
x.image().bind(imageView04, url[3], options, new Callback.CommonCallback<Drawable>() {
@Override
public void onSuccess(Drawable result) {
}
//....回调方法省略,与上面基本一致
7.第五种方式,使用x.image().loadDrawable()加载
x.image().loadDrawable(url[4], options, new Callback.CommonCallback<Drawable>() {
@Override
public void onSuccess(Drawable result) {
//加载成功回调
imageView05.setImageDrawable(result);
}
//....回调方法省略,与上面基本一致
8.第六种方式,使用x.image().loadFile()加载
x.image().loadFile(url[5], options, new Callback.CacheCallback<File>() {
@Override
public boolean onCache(File result) {
//true相信本地缓存,第二次加载图片将不会请求网络同时onSuccess返回为空
return true;
}
//....回调方法省略,与上面基本一致
效果图
到这里就图片模块也说完了接下来就只剩下一个数据库模块了。
项目地址:https://github.com/azhong1011/xUtils