项目中xUtils和Handler的一点学习
来源:互联网 发布:网络新词 四个字2016 编辑:程序博客网 时间:2024/05/31 05:27
记录学习。
最近在做一个自己设计的小项目,刚好在学习xUtils,于是也用到了xUtils中的BitmapUtils和HttpUtils。
首先说下BitmapUtils
用Bitmap加载网络图片代码真的简单,它是自动缓存了。
简单的说下它的几个方法,很多用不到,就说几个常用的
一、是加载到ImageView:
//这是不写缓存路径,创建默认路径的bitmapUtils对象BitmapUtils bitmap=new BitmapUtils(this);//path代表缓存路径,创建设置了缓存路径的bitmapUtils对象BitmapUtils bitmap=new BitmapUtils(this,path);//加载的方法,imageUri表示你网络图片的路径bitmap.display(iv_lookphoto,imageUri);
二、是个给你缓存的图片改变名字
由于它缓存的时候是把uri编码后命名的,无法主动自己去找,所有我们可以自己设置命名。
bitmap.configDiskCacheFileNameGenerator(new DiskCacheFileNameGenerator() { @Override public String generate(String arg0) { //name 你想命的名字规则 return name; } });
三、主要是用来判断是否缓存,通过uri得到位图的文件
他的方法是
public File getBitmapFileFromDiskCache(String uri) { return globalConfig.getBitmapCache().getBitmapFileFromDiskCache(uri); }
我们怎么用它呢:
File file=bitmap.getBitmapFileFromDiskCache(imageUri)if(file!=null){//如果缓存了我们就可以不到网上去下载了,可以到缓存的地方去找,这就用到了,上面2个方法了。给它设置缓存的路径,其次给它设置命名规则,通过路径,和名字可以直接加载本地缓存到imageview上//执行的方法,path+"/"+name=缓存图片的本地路径bitmap.display(imageview,path+name);}else{//如果没有我们就去网上加载下来//执行的方法bitmap.display(imageview,imagerUri);}
在说下HttpUtils和Handler
HttpUtils和Handler的各自用户网上有很多我就不多说了。
我就说下我自己写的小工具,主要是方便自己代码复用,刚开始用HttpUtils时我发现我老是写重复的代码如:
RequestParams params=new RequestParams();DataPacket date=new DataPacket();String datejson= gson.toJson(date);params.addBodyParameter("DataPacket", datejson);HttpUtils http1 = new HttpUtils();http1.configCurrentHttpCacheExpiry(1000 * 10);http1.send(HttpMethod.POST, CommandURl, params, new RequestCallBack<String>() {@Overridepublic void onFailure(HttpException arg0, String arg1) {Toast.makeText(TrendsActivity.this, "服务器连接失败", 1).show();}public void onLoading(long total, long current, boolean isUploading) {if (isUploading) {System.out.println("upload1: " + current + "/" + total);} else {System.out.println("reply1: " + current + "/" + total);}}@Overridepublic void onSuccess(ResponseInfo<String> info) {String resultjson=info.result;DataPacket result=gson.fromJson(resultjson, DataPacket.class);}});
写了几个界面后,看代码恶心到了,于是我写了一个小小工具方便自己用HttpUtils;
首先在不同的界面写自己的handler:
private Handler mHandler=new Handler(){ public void handleMssage(Message msg){ System.out.println("接受的消息"+msg.obj); //在对数据处理 //在进行UI的变化 } };
在自己重新写个XUtilsPost.class。写一个Post方法,把上下文,和handler传过去。
public class XUtilsPost {//自动实现异步处理 public static void doPost(final Context context,String url, RequestParams params, final Handler mHandler) { HttpUtils http = new HttpUtils(); System.out.println("开始1"); http.configCurrentHttpCacheExpiry(1000 * 10); http.send(HttpMethod.POST, url, params, new RequestCallBack<String>() { @Override public void onFailure(HttpException arg0, String arg1) { Toast.makeText(context, "服务器连接失败", 1).show(); } public void onLoading(long total, long current, boolean isUploading) { if (isUploading) { System.out.println("upload: " + current + "/" + total); } else { System.out.println("reply: " + current + "/" + total); } } @Override public void onSuccess(ResponseInfo<String> info) { final String info1=info.result; System.out.println(info.result); Thread th=new Thread(new Runnable() { public void run() { Message msg=new Message(); msg.obj=info1; //通过handler把数据得到 mHandler.sendMessage(msg); } }); th.start(); } }); }
由于我只用到了Post的方法,Get的方法就没写了,不过代码差不多是一样的。如果有什么地方错了,望提醒。菜鸟学习中。
0 0
- 项目中xUtils和Handler的一点学习
- Android中handler的一点讲解
- android 项目学习随笔八(xUtils的BitmapUtils模块)
- gridview嵌套listview事件冲突和xutils、handler、asyn的异步操作
- [有事没事记录一点]Android中,Handler的用法
- c#学习中关于new和override的一点小结
- 对Handler的一点封装
- 对Handler的一点封装
- 对于handler的一点理解
- xUtils中viewUtils的使用
- xUtils 中 HttpUtils 的使用
- xUtils中DbUtils的使用
- 和客户谈项目学到的一点
- xUtils和Volley的优缺点
- Android中倒计时项目(handler和timer)
- xUtils 开源项目的使用
- Study-android 的handler和message学习
- Android 中handler和handlerThread的使用
- Android中Settings.System的使用
- APK瘦身值得分享的一些经验
- .NET开发辅助工具(五)---SQL 开发工具
- androd动画的详细说明
- Android Studio——boolean android.app.Activity.isFinishing()函数使用
- 项目中xUtils和Handler的一点学习
- apt-get常见错误
- Android应用内多进程的使用
- java内部类之匿名内部类
- windows7环境下theano安装
- 服务器架设笔记——httpd插件支持mysql字符集选择
- SpringMVC对HTTP报文体的处理
- 基础概念之浮点数(二)
- Groovy基础篇