Xutils 3相比xutils 2.x兼容性更好但较之前版本稍有变化,故对其用法做个说明:https://github.com/wyouflf/xUtils3
eclipse:下载aar并改为.zip解压, 取出jar包文件http://dl.bintray.com/wyouflf/maven/org/xutils/xutils/
androd-studio:
compile 'org.xutils:xutils:3.3.34'
需要的权限
初始化
// 在application的onCreate中初始化
@Override
public void onCreate() {
super.onCreate();
x.Ext.init(this);
x.Ext.setDebug(BuildConfig.DEBUG); // true/false是否输出debug日志, 开启debug会影响性能.
}
#xutils3混淆处理
-keep class org.xutils.** { *;}
1.http请求:x.http()
支持get/post/put/delete……等网络请求方式:
RequestParams argPar=new RequestParams(url);
argPar.addBodyParameter(name, value);
argPar.addHeader(name, value);
x.http().request(HttpMethod.GET, argPar, new CommonCallback());//支持缓存CacheCallback
文件图片上传/下载:
RequestParams argPar=new RequestParams(url);
argPar.setMultipart(true);//上传表单文件 setAsJsonContent(true)setBodyContent()上传JSON
argPar.addBodyParameter(filename,File);
x.http().post(argPar,new CommonCallback());
RequestParams request = new RequestParams(url);//下载网址
request.setSaveFilePath("savepath");//保存地址
request.setAutoResume(true);//支持断点续传
request.setCancelFast(true);//支持立即取消
x.http().get(request, new Callback.ProgressCallback() {
@Override
public void onLoading(long l, long l1, boolean b) {
Log.e("log.e---","下载"+((int) (l1*100/l))+"%");
}
@Override
public void onSuccess(File file) {
}
@Override
public void onError(Throwable throwable, boolean b) {
}
@Override
public void onCancelled(CancelledException e) {
}
@Override
public void onFinished() {
}
@Override
public void onWaiting() {
}
@Override
public void onStarted() {
}
});
2.image请求:x.image()
ImageOptions imageOptions = new ImageOptions.Builder()
.setSize(DensityUtil.dip2px(120), DensityUtil.dip2px(120))//图片大小
.setRadius(10000)//ImageView圆角
.setCrop(true)// 如果ImageView的大小不是定义为wrap_content, 不要crop.
.setImageScaleType(ImageView.ScaleType.FIT_CENTER)//缩放
.setLoadingDrawableId(R.mipmap.ic_launcher)//加载中默认显示图片
.setUseMemCache(true)//设置使用缓存
.setFailureDrawableId(R.mipmap.ic_launcher)//加载失败后默认显示图片
.build();
x.image().bind(image, "http://pic.baike.soso.com/p/20090711/20090711101754-314944703.jpg",imageOptions);
// assets file
x.image().bind(imageView, "assets://test.gif", imageOptions);
// local file
x.image().bind(imageView, new File("/sdcard/test.gif").toURI().toString(), imageOptions);
x.image().bind(imageView, "/sdcard/test.gif", imageOptions);
x.image().bind(imageView, "file:///sdcard/test.gif", imageOptions);
x.image().bind(imageView, "file:/sdcard/test.gif", imageOptions);
x.image().bind(imageView, url, imageOptions, new Callback.CommonCallback() {...});
x.image().loadDrawable(url, imageOptions, new Callback.CommonCallback() {...});
x.image().loadFile(url, imageOptions, new Callback.CommonCallback() {...});
3.view注解:x.view()
@ContentView(R.layout.activity_main)//加载的xml文件
public class ActivityTest extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
x.view().inject(this);//Activity注解绑定
}
}
@ContentView(R.layout.activity_main)//加载的xml文件
public class FragmentTest extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return x.view().inject(this, inflater, container);//Fragment注解绑定
}
}
响应事件:
/**
*等同于@Event(value={R.id.id_but1,R.id.id_but2},type=View.OnClickListener.class)
*/
@Event(value={R.id.id_but1,R.id.id_but2}) //type默认为OnClickListener
private void getEvent(View view){//必须用private修饰,用xxEvent/xxClick方法名否则无效
switch(view.getId()){
case R.id.id_but1:
break;
case R.id.id_but2:
break;
}
}
4.DB请求:x.getDb(daoConfig)
https://blog.csdn.net/qq_25508039/article/details/50906134
来源:http://blog.csdn.net/a704755096/article/details/51234120