xUitls框架配置及入门使用

文章目录

  • 环境配置
    • 一:添加网络权限
    • 二:添加依赖
  • 使用
    • 一:xUtils访问网络
    • 二:加载图片
    • 三:框架注解
      • 一:替代onCreate方法中的 setContentView(R.layout.activity_main);
      • 二:控件注解
      • 三:单个点击事件注解
      • 四:多个事件绑定

环境配置

一:添加网络权限

在AndroidManifest里添加

   <uses-permission android:name="mission.INTERNET" />
    <uses-permission android:name="android.android.perpermission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

xUitls框架配置及入门使用_第1张图片
在AndroidManifest的 application里添加

android:usesCleartextTraffic="true"

xUitls框架配置及入门使用_第2张图片

二:添加依赖

在gradle里添加

implementation 'org.xutils:xutils:3.8.5'

xUitls框架配置及入门使用_第3张图片
不要忘记点击这个再退出~
在这里插入图片描述

使用

一:xUtils访问网络

在Mainactivity.java里的onCreate初始化导入xUtils,会爆红,alter+enter导入包就行

x.Ext.init(getApplication());
x.Ext.setDebug(BuildConfig.DEBUG);// 是否输出debug日志, 开启debug会影响性能.
x.view().inject(this);//没有用到view注解可以先不用

xUitls框架配置及入门使用_第4张图片
在Mainactivity.java里的onCreate使用:
不带缓存

RequestParams params = new RequestParams(URL);
x.http().get(params, new Callback.CommonCallback<String>() {
@Override
public void onSuccess(String result) {
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
}
@Override
public void onCancelled(CancelledException cex) {
}
@Override
public void onFinished() {
}
});

带缓存

RequestParams params = new RequestParams(URL);
x.http().get(params, new Callback.CacheCallback<String>() {
@Override
public boolean onCache(String result) {
return false;
}
@Override
public void onSuccess(String result) {
Log.i("MainActivity", result);
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
Log.i("MainActivity", ex.getMessage());
}
@Override
public void onCancelled(CancelledException cex) {
}
@Override
public void onFinished() {
}
});

带参数的请求

RequestParams params = new RequestParams("https://www.baidu.com/s");
// params.setSslSocketFactory(...); // 如果需要自定义SSL
params.addQueryStringParameter("wd", "xUtils");

二:加载图片

加载网络图片,放在Mainactivity.java里的onCreate里,并且在初始化代码后面添加

ImageOptions imageOptions;
imageOptions = new ImageOptions.Builder()
.setSize(DensityUtil.dip2px(120), DensityUtil.dip2px(120))
.setRadius(DensityUtil.dip2px(5))
// 如果ImageView的大小不是定义为wrap_content, 不要crop.
.setCrop(true) // 很多时候设置了合适的scaleType也不需要它.
// 加载中或错误图片的ScaleType
//.setPlaceholderScaleType(ImageView.ScaleType.MATRIX)
.setImageScaleType(ImageView.ScaleType.CENTER_CROP)
.setLoadingDrawableId(R.mipmap.ic_launcher)
.setFailureDrawableId(R.mipmap.ic_launcher)
.build();
x.image().bind(imageView, url, imageOptions);//一般使用到这就可以

还有其他一些使用方式

// assets file
x.image().bind(imageView, "assets://test.gif", imageOptions);
// resources file
x.image().bind(imageView, "res://" + R.minimap.test, 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<Drawable>() {...});
x.image().loadDrawable(url, imageOptions, new Callback.CommonCallback<Drawable>() {...});
// 用来获取缓存文件
x.image().loadFile(url, imageOptions, new Callback.CommonCallback<File>() {...});

三:框架注解

可以用它代替findViewById,减少代码的书写,更加方便,记得后面千万不要加分号

一:替代onCreate方法中的 setContentView(R.layout.activity_main);

//替代onCreate方法中的 setContentView(R.layout.activity_main);
@ContentView(R.layout.activity_main)
public class MainActivity extends AppCompatActivity {
}

二:控件注解

放在Mainactivity.java里,onCreate外面声明

@ViewInject(R.id.textView)
private TextView mTextView;

xUitls框架配置及入门使用_第5张图片

三:单个点击事件注解

放在Mainactivity.java里,onCreate外面使用

/**
* 1. 方法必须私有限定,
* 2. 方法参数形式必须和type对应的Listener接口一致.
* 3. 注解参数value支持数组: value={id1, id2, id3}
* 4. 其它参数说明见{@link org.xutils.event.annotation.Event}类的说明.
**/
@Event(value = R.id.btn_test1,
type = View.OnClickListener.class/*可选参数, 默认是View.OnClickListener.class*/)
private void onTest1Click(View view) {
...
}

四:多个事件绑定

@Event(value = {R.id.button,R.id.button2},
type = View.OnClickListener.class/*可选参数, 默认是View.OnClickListener.class*/)
private void onTest1Click(View view) {
switch (view.getId()){
case R.id.button:
Log.i("MainActivity", "button1 click");
break;
case R.id.button2:
Log.i("MainActivity", "button2 click");
break;
}
}

你可能感兴趣的:(Android)