本文参考自xutils更新到3.0后的基本使用规则
1. xutils中的依赖注入(IOC框架)
- 在自定义的Application中初始化声明xutils框架
public class LYJApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
x.Ext.init(this);//Xutils初始化
}
}
- 注意使用IOC框架注入的变量必须为私有,否则无效
- 注意使用顺序,先要
x.view().inject(this);
,才能使用用到IOC的成员变量 - 格式:
注入成员变量 -> @ViewInject(value = 资源ID)
注入布局文件 -> @ContentView(value = 资源ID)
注入监听事件 -> @Event(value = 资源ID)
import org.xutils.view.annotation.ContentView;
import org.xutils.view.annotation.Event;
import org.xutils.view.annotation.ViewInject;
import org.xutils.x;
@ContentView(value = R.layout.activity_main)
public class MainActivity extends AppCompatActivity {
@ViewInject(value = R.id.mybut)
private Button mybut;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
x.view().inject(this);
}
@Event(value = R.id.mybut,type = View.OnClickListener.class)
private void onButtonClick(View v){
switch (v.getId()){
case R.id.mybut:
Toast.makeText(this,"你好我是Xutils的IOC功能",Toast.LENGTH_SHORT).show();
break;
}
}
}
2. xutils用于加载网路图片
- 主要语句
x.image().bind(image,url);
x.image().bind(image,url,imageOptions);
其中URL可以是网络图片URL,也可以是SD卡的图片路径;
imageOptions可以对图片的显示设置参数
ImageOptions imageOptions = new ImageOptions.Builder()
.setSize(DensityUtil.dip2px(120), DensityUtil.dip2px(120))//图片大小
.setRadius(DensityUtil.dip2px(5))//ImageView圆角半径
.setCrop(true)// 如果ImageView的大小不是定义为wrap_content, 不要crop.
.setImageScaleType(ImageView.ScaleType.CENTER_CROP)
.setLoadingDrawableId(R.mipmap.ic_launcher)//加载中默认显示图片
.setFailureDrawableId(R.mipmap.ic_launcher)//加载失败后默认显示图片
.build();
x.image().bind(image, "http://pic.baike.soso.com/p/20090711/20090711101754-314944703.jpg",imageOptions);