xUtils3 的基本使用

xiaoxiao2021-02-27  142

Activity的注解

1.在Application的oncreate方法中加入下面代码:

x.Ext.init(this);

2.在Activity的oncreate方法中加入下面代码:

x.view().inject(this);

3.加载当前的Activity布局需要如下注解:

@ContentView加入到Activity的上方 例: @ContentView(R.layout.activity_main) public class MainActivity extends AppCompatActivity { x.view().inject(this); //...自己的逻辑 }

4.给View进行初始化需要如下注解:

@InjectView //其实就是正常的 findViewById();方法而已 例: //xx就是你的控件ID @InjectView(R.id.XX) TextView tv;

5.处理控件的各种响应事件需要如下注解:

@Envent //添加事件的方法 例: //绑定单击事件 单击事件 默认的就是 所以不用指定类型 @Envent(R.id.main_btn) //回调方法 方法触发后执行的方法 修饰符只能用 private private void XX(View view){ //...写你自己的逻辑 }

网络模块

Get请求方式:

//测试网址 String url = "http://www.93.gov.cn/93app/data.do"; //定义请求参数对象 RequestParams r = new RequestParams(url); //添加请求参数 Key Value 的形式 r.addQueryStringParameter("channelId", "0"); r.addQueryStringParameter("startNum", "0"); //发送请求 (get)方式 x.http().get(r, new Callback.CommonCallback<String>() { @Override public void onSuccess(String result) { t.setText(result); } @Override public void onError(Throwable ex, boolean isOnCallback) { Toast.makeText(MainActivity.this, "出错了", Toast.LENGTH_SHORT).show(); } @Override public void onCancelled(CancelledException cex) { Toast.makeText(MainActivity.this, "取消了", Toast.LENGTH_SHORT).show(); } @Override public void onFinished() { Toast.makeText(MainActivity.this, "完成了", Toast.LENGTH_SHORT).show(); } });

下面我们来看下带有缓存的GET请求,POST请求和其他请求方式类似,后面就不再赘述:

String url = "http://www.93.gov.cn/93app/data.do"; //定义请求参数对象 RequestParams r = new RequestParams(url); //添加请求参数 Key Value 的形式 r.addQueryStringParameter("channelId", "0"); r.addQueryStringParameter("startNum", "0"); x.http().get(params, new Callback.CacheCallback<String>() { @Override public boolean onCache(String result) { //得到缓存数据, 缓存过期后不会进入 this.result = result; return true; //true: 信任缓存数据, 不再发起网络请求; false不信任缓存数据 } @Override public void onSuccess(String result) { //如果服务返回304或onCache选择了信任缓存,这时result为null Log.i("JAVA", "开始请求"); if (result != null) { this.result = result; } } @Override public void onError(Throwable ex, boolean isOnCallback) { Toast.makeText(MainActivity.this, "出错了", Toast.LENGTH_SHORT).show(); } @Override public void onCancelled(CancelledException cex) { Toast.makeText(MainActivity.this, "取消了", Toast.LENGTH_SHORT).show(); } @Override public void onFinished() { Toast.makeText(MainActivity.this, "完成了", Toast.LENGTH_SHORT).show(); } }

post请求方式:

RequestParams params = new RequestParams(url); params.addBodyParameter("username","abc"); params.addParameter("password","123"); params.addHeader("head","android"); //为当前请求添加一个头 x.http().post(params, new Callback.CommonCallback<String>() { @Override public void onSuccess(String result) { //解析result } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } });

其他网络请求方式:

RequestParams params = new RequestParams(url); params.addParameter("username","abc"); x.http().request(HttpMethod.PUT, params, new Callback.CommonCallback<String>() { @Override public void onSuccess(String result) { //解析result } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } });

上传文件:

//获取文件的路径 这里是 获取 手机SD卡中的 文件 File file = new File(Environment.getExternalStorageDirectory(),"/Music/fjxc.mp3"); RequestParams params = new RequestParams(url); //将文件当作参数 上传 params.addBodyParameter("file", file); params.setMultipart(true); x.http().post(params, new Callback.CommonCallback<String>() { @Override public void onSuccess(String result) { Toast.makeText(MainActivity.this, "上传成功", Toast.LENGTH_SHORT).show(); } @Override public void onError(Throwable ex, boolean isOnCallback) { Toast.makeText(MainActivity.this, "上传失败啦", Toast.LENGTH_SHORT).show(); } @Override public void onCancelled(CancelledException cex) { Toast.makeText(MainActivity.this, "上传被取消啦", Toast.LENGTH_SHORT).show(); } @Override public void onFinished() { Toast.makeText(MainActivity.this, "上传完成啦", Toast.LENGTH_SHORT).show(); } });

下载文件:

这里以下载apk为例进行说明,apk下载完成后,自动调用系统的安装方法。

RequestParams params = new RequestParams(url); //下载文件的保存路径 params.setSaveFilePath(Environment.getExternalStorageDirectory() + "/apk"); //自动修改文件名字 params.setAutoRename(true); x.http().get(params, new Callback.CommonCallback<File>() { @Override public void onSuccess(File result) { //下载成功之后进行安装apk Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(result),"application/vnd.android.package-archive"); startActivity(intent); } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } });

图片模块的使用

xUtils3图片模块,重点在于加载图片的4个bind方法,loadDrawable与loadFIle用法和ImageOptions用法,需多加练习。

ImageOptions

//通过ImageOptions.Builder().set方法设置图片的属性 ImageOptions imageOptions= new ImageOptions.Builder().setFadeIn(true).build(); //淡入效果 //ImageOptions.Builder()的一些其他属性: .setCircular(true) //设置图片显示为圆形 .setSquare(true) //设置图片显示为正方形 .setCrop(true).setSize(200,200) //设置大小 .setAnimation(animation) //设置动画 .setFailureDrawable(Drawable failureDrawable) //设置加载失败的动画 .setFailureDrawableId(int failureDrawable) //以资源id设置加载失败的动画 .setLoadingDrawable(Drawable loadingDrawable) //设置加载中的动画 .setLoadingDrawableId(int loadingDrawable) //以资源id设置加载中的动画 .setIgnoreGif(false) //忽略Gif图片 .setParamsBuilder(ParamsBuilder paramsBuilder) //在网络请求中添加一些参数 .setRaduis(20) //设置拐角弧度 .setUseMemCache(true) //设置使用MemCache,默认true

bind方法

// 加载资源文件(本地的文件) x.image().bind(imageView, "assets://test.gif", imageOptions); // 加载网络资源 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); //有回调方法的bind方法 x.image().bind(imageView, url, imageOptions, 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() { } }

loadDrawable方法

x.image().loadDrawable(url, imageOptions, new Callback.CommonCallback<Drawable>() { @Override public void onSuccess(Drawable result) { imageView.setImageDrawable(result); } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } });

loadFile方法

当我们通过bind()或者loadDrawable()方法加载了一张图片后,它会保存到本地文件中,那当我需要这张图片时,就可以通过loadFile()方法进行查找。

x.image().loadFile(url,imageOptions,new Callback.CacheCallback<File>(){ @Override public boolean onCache(File result) { //在这里可以做图片另存为等操作 Log.i("JAVA","file:"+result.getPath()+result.getName()); return true; //相信本地缓存返回true } @Override public void onSuccess(File result) { } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } });

数据库模块的使用

未完待续。。

如果有什么扩展的需求或者我有什么遗失和错误欢迎评论,我会第一时间回复和更新。

转载请注明原文地址: https://www.6miu.com/read-15490.html

最新回复(0)