xUtils3的使用:
简介:
xUtils3 是 xUtils 的升级版,功能和性能都在提高。
xUtils3 主要有四大模块:注解模块,联网模块,图片加载模块,数据库模块;
注解模块: 用于在 Activity 或者 Fragment 中初始化布局文件,便于代码更加简洁;
联网模块: xUtils3 支持超大文件(超过2G)上传,更全面的http请求协议支持(11种谓词), 拥有更加灵活的 ORM,更多的事件注解支持且不受混淆影响;
图片加载模块: 加载图片很方便并且不用担心内存溢出,还可以图片绑定支持gif(受系统兼容性影响, 部分gif文件只能静态显示), webp; 支持圆角, 圆形, 方形等裁剪, 支持自动旋转.
数据库模块: 数据库 api 简化提高性能, 达到和 greenDao 一致的性能
xUtils3的主要功能:
- 1、注解
- 2、联网请求文本数据
- 3、大文件下载
- 4、大文件上传
- 5、请求图片
- 6、数据库模块达到和 greenDao 一致的性能
使用前的配置:
compile 'org.xutils:xutils:3.3.42 或则下载整个工程再加载。
需要的权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
初始化:
// 在application的onCreate中初始化
@Override
public void onCreate() {
super.onCreate();
x.Ext.init(this);
x.Ext.setDebug(BuildConfig.DEBUG); // 是否输出debug日志, 开启debug会影响性能.
...
}
xUtils3的注解模块:
xUtils3在Activity中注解初始化布局:
@ContentView(R.layout.activity_fragment_xutils3)
public class FragmentXutils3Activity extends FragmentActivity
{
@ViewInject(R.id.tv_title)
private TextView tv_title;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_fragment_xutils3);
x.view().inject(FragmentXutils3Activity.this);
//设置标题
tv_title.setText("在Fragment中使用注解");
}
}
Activity 的注解
1.在 Application 的 oncreate 方法中加入下面代码: x.Ext.init(this);
2.在 Activity 的 oncreate 方法中加入下面代码: x.view().inject(this);
3.加载当前的 Activity 布局需要如下注解: @ContentView 加入到 Activity 的上方
4.给 View 进行初始化需要如下注解: @InjectView 5.处理控件的各种响应事件需要如下注解: @Envent
xUtils3在Fragment中注解初始化布局:
@ContentView(R.layout.fragment_demo)
public class demoFragment extends Fragment
{
@ViewInject(R.id.demoFragment_button)
private Button demoFragment_button;
@ViewInject(R.id.demoFragment_text)
private TextView demoFragment_text;
private Context mContext;
@Override
public void onCreate(@Nullable Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
mContext = getContext();
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
{
// return super.onCreateView(inflater, container, savedInstanceState);
return x.view().inject(demoFragment.this,inflater,container);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
demoFragment_button.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Toast.makeText(mContext, "Fragment按钮被初始化了", Toast.LENGTH_SHORT).show();
}
});
demoFragment_text.setText("demoFragment_text被初始化了");
}
}