XUtils网络请求,图片加载(适合新手)。
来源:互联网 发布:xp无法找到网络打印机 编辑:程序博客网 时间:2024/06/09 08:26
XUtils是最近比较好的开源框架,功能强大,我在使用了几个月之后总结了一些使用方法,希望对大家有帮助。
一.网络请求
1. get请求的方法:
public static <T> Callback.Cancelable Get(String url,Map<String,Object> map,Callback.CommonCallback<T> callback){ RequestParams params=new RequestParams(url); if(null!=map){ for(Map.Entry<String, Object> entry : map.entrySet()){ params.addQueryStringParameter(entry.getKey(), (String)entry.getValue()); } } } Callback.Cancelable cancelable = x.http().get(params, callback); return cancelable; }
这里我们会自动将传入的map拼接成完整的URL
XUtilsHttp.Get(URLString, map, new XutilsCallBack<String>() { @Override public void onSuccess(String result) { super.onSuccess(result); //这里的String可以声明为其他的泛型,可以是File,Object等类型。 //在这里处理请求成功后逻辑 } @Override public void onError(Throwable ex, boolean isOnCallback) { super.onError(ex, isOnCallback); //在这里处理请求失败 (包括服务器错误,网络错误等) } });
- post请求的方法:
public static <T> Callback.Cancelable Post(String url,Map<String,Object> map,Callback.CommonCallback<T> callback){ RequestParams params=new RequestParams(url); if(null!=map){ for(Map.Entry<String, Object> entry : map.entrySet()){ params.addParameter(entry.getKey(), entry.getValue()); } } } Callback.Cancelable cancelable = x.http().post(params, callback); return cancelable; }
调用方法和上面一致。
3.上传文件的方法:
public static <T> Callback.Cancelable UpLoadFile(String url,Map<String,Object> map,Callback.CommonCallback<T> callback){ RequestParams params=new RequestParams(url); if(null!=map){ for(Map.Entry<String, Object> entry : map.entrySet()){ params.addParameter(entry.getKey(), entry.getValue()); } } params.setMultipart(true); Callback.Cancelable cancelable = x.http().post(params, callback); return cancelable; }
调用方法和上面一致。
4.下载文件的方法:
public static <T> Callback.Cancelable DownLoadFile(String url,String filepath,Callback.CommonCallback<T> callback){ RequestParams params=new RequestParams(url); //设置断点续传 params.setAutoResume(true); params.setSaveFilePath(filepath); Callback.Cancelable cancelable = x.http().get(params, callback); return cancelable; }
4.回调方法:
public class XutilsCallBack<ResultType> implements Callback.CommonCallback<ResultType>{ @Override public void onSuccess(ResultType result) { //可以根据公司的需求进行统一的请求成功的逻辑处理 } @Override public void onError(Throwable ex, boolean isOnCallback) { //可以根据公司的需求进行统一的请求网络失败的逻辑处理 } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } 二.图片加载 XUtils可以加载网络图片,资源图片,本地图片。
x.image().bind(imageView, imageURL, new ImageOptions.Builder() .setFailureDrawableId(R.drawable.default_pic_loading) .setSize(screenWidth,screenHeight*85/100) .setCrop(true) .build());
``` imageOptions = new ImageOptions.Builder() // 加载中或错误图片的ScaleType .setPlaceholderScaleType(ImageView.ScaleType.CENTER_CROP) // 默认自动适应大小 // .setSize(...) //.setRadius(DensityUtil.dip2px(5)) .setIgnoreGif(false) // 如果使用本地文件url, 添加这个设置可以在本地文件更新后刷新立即生效. //.setUseMemCache(false) .setFailureDrawableId(R.mipmap.default_pic_loading) .setLoadingDrawableId(R.mipmap.default_pic_loading) .build();
上面的方法写的很清楚 不过我个人觉得Glide好用些。
三.数据库
自己可以封装相关方法一键增删改查。
DbUtils db = DbUtils.create(this);User user = new User(); //这里需要注意的是User对象必须有id属性,或者有通过@ID注解的属性user.setEmail("wyouflf@qq.com");user.setName("wyouflf");db.save(user); // 使用saveBindingId保存实体时会为实体的id赋值...// 查找Parent entity = db.findById(Parent.class, parent.getId());List<Parent> list = db.findAll(Parent.class);//通过类型查找Parent Parent = db.findFirst(Selector.from(Parent.class).where("name","=","test"));// IS NULLParent Parent = db.findFirst(Selector.from(Parent.class).where("name","=", null));// IS NOT NULLParent Parent = db.findFirst(Selector.from(Parent.class).where("name","!=", null));// WHERE id<54 AND (age>20 OR age<30) ORDER BY id LIMIT pageSize OFFSET pageOffsetList<Parent> list = db.findAll(Selector.from(Parent.class) .where("id" ,"<", 54) .and(WhereBuilder.b("age", ">", 20).or("age", " < ", 30)) .orderBy("id") .limit(pageSize) .offset(pageSize * pageIndex));// op为"in"时,最后一个参数必须是数组或Iterable的实现类(例如List等)Parent test = db.findFirst(Selector.from(Parent.class).where("id", "in", new int[]{1, 2, 3}));// op为"between"时,最后一个参数必须是数组或Iterable的实现类(例如List等)Parent test = db.findFirst(Selector.from(Parent.class).where("id", "between", new String[]{"1", "5"}));DbModel dbModel = db.findDbModelAll(Selector.from(Parent.class).select("name"));//select("name")只取出name列List<DbModel> dbModels = db.findDbModelAll(Selector.from(Parent.class).groupBy("name").select("name", "count(name)"));...List<DbModel> dbModels = db.findDbModelAll(sql); // 自定义sql查询db.execNonQuery(sql) // 执行自定义sql...
总结:当然XUtils还有很多功能,这里就不一一列举,大家去可以Github上面搜索看看作者是怎么说的,小弟第一次写博客,希望大家多多包涵。
0 0
- XUtils网络请求,图片加载(适合新手)。
- Xutils请求数据imageloader加载图片+网络判断
- xUtils中的HttpUtils请求网络数据和BitmapUtils加载网络图片
- Xutils请求数据,加载图片基本使用方法
- 利用Xutils中的BitmapUtils请求网络图片
- 用Xutils 加载网络图片。设置Appliction
- xUtils之网络请求
- Xutils请求网络
- Xutils中网络请求
- Xutils中网络请求
- Xutils请求网络数据
- xutils网络请求
- Xutils网络请求
- 网络访问基础篇(适合新手)
- 网络异步请求图片加载
- xUtils之加载图片
- Xutils 加载图片
- xUtils框架t网络加载图片 结合SwipeRefreshLayou下拉刷新
- x264 杂记
- Jsp运行原理
- Microsoft VC++ runtime installer 问题解决
- screen命令——会话分离
- SwipeListView删除item保持列表位置不变
- XUtils网络请求,图片加载(适合新手)。
- 自动调整linux系统时间和时区与Internet时间同步
- redis修改密码
- Linux shell命令示例介绍-个人笔记
- Linux 安装.src.rpm源码包的方法
- 编译clang的时候ld进程耗尽内存
- 【架构师之路】-【01设计模式】-02设计原则之单一职责原则
- spring @component的作用
- Unity Tips