xUtils 包含了orm, http(s), image, view注解, 但依然很轻量级(251K), 并且特性强大, 方便扩展.
可以方便我们处理网络请求原生框架的麻烦之处,是一个非常不错的框架
https://github.com/wyouflf/xUtils3
implementation 'org.xutils:xutils:3.8.8'
x.Ext.init(getApplication());
x.Ext.setDebug(BuildConfig.DEBUG);// 是否输出debug日志, 开启debug会影响性能.
x.view().inject(this);//没有用到view注解可以先不用
到此我们使用该框架的配置基本上已经完成,下面就可以进行网络请求了
RequestParams params = new RequestParams("http://148.70.46.9/object3");
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() { }
});
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();
//mTextView控件名字(ImageView);http://148.70.46.9/img/head.jpg图片资源位置;//imageOptions默认照写
跟上面的一样,那个图片就是网络请求访问到的数据;
注解主要有三个方面:1.布局;2.控件 ;3.事件
要注意的是 ==@ContentView(R.layout.activity_main)==要写在public class MainActivity extends AppCompatActivity { }之上
//替代onCreate方法中的 setContentView(R.layout.activity_main);
@ContentView(R.layout.activity_main)
该注解可以在控件比较多的时候,减轻代码量
相当于TextView mText=findViewById(R.id.text);
@ViewInject(R.id.textView) private TextView mTextView;//textView
@ViewInject(R.id.imageView) private ImageView imageV;//imageView
一个按钮点击事件:
@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)
private void onTest1Click(View view) {
switch (view.getId()){
case R.id.button:
Toast.makeText(MainActivity.this,"按钮1",Toast.LENGTH_SHORT).show();
break;
case R.id.button2:
Toast.makeText(MainActivity.this,"按钮2",Toast.LENGTH_SHORT).show();
break;
}
}
链接:https://pan.baidu.com/s/19RCBSWcNHaZ0YHwIjrb8AQ
提取码:ac2n