Butterknife
介绍:
快速快捷初始化控件的一个工具!
原理:
注解+反射
使用:
Activity
Fragment
Adapter
在对应的布局上右键--》 generate --> butterknife
Adapter需要勾选 左下角的 createViewHolder即可
注意:使用Butterknife 需要添加对应jar包和对应的插件
8.0版本以后使用却别:
问题:直接使用,无法正常初始化控件,会爆空指针!
解决方案:
1.Project的build.gradle文件中增加classpath内容:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' //增加这一句
2.app的build.gradle文件中增加classpath内容:
apply plugin: 'com.neenbedankt.android-apt'//增加这一句
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.jakewharton:butterknife:8.1.0'
apt 'com.jakewharton:butterknife-compiler:8.1.0'//增加这一句
注解
- 1.需要修改类的修饰符 @interface
- 2.声明注解的方法 不用写方法体
* - 注解的类名 相当于注解的名称
- 注解的方法名 相当于注解的属性名 defaulet默认的值 方法的返回值相当于属性的赋值的类型
直接target标签 type类型 指定作用的位置 如果不写 随便位置
Xutils3.0
1.xutils是android中的一个快速开发框架,xutils是基于afinal开发的,比afinal的稳定性提高了不少
2.xUtils支持超大文件上传(超过2g),更全面的http请求协议支持(11种谓词),拥有更加灵活的orm
3.xUtils最低兼容android4.0
4.xUtils3变化较多,Http实现替换HttpClient为UrlConnectionXutils3.0内部包含哪些方面的工具类:
四个部分:
1.View控件的注解
2.网络请求部分工具类
3.图片加载部分的工具类
4.数据库部分的工具类studio中如何导入xutils3.0的包
依赖 导入3.0即可
使用:
1.将程序的最低版本调制4.0以上!
2.导入jar包即可
compile ‘org.xutils:xutils:3.3.40’
3.添加权限
4.Application中进行框架的初始化工作x.Ext.init(this);
//参数1: Boolean类型 ture 代表输出内部的日志 但是输出日志影响开发性能!需要在程序上线时 关闭日志输出
x.Ext.setDebug(true);1.View控件的注解部分
目的: 和butterKnife一样,更加快捷方便的进行控件的初始化和控件监听事件的写法
butterKnife和xutils控件注解部分的不同点:xutils部分,指定控件的点击事件会更多!
Activity
1.在Activity的类上 @ContentView(R.layout.xxx) 2.onCreate中进行初始化 x.View().inject(Activity); 同时 去掉setContentView 3. @ViewInJect(控件的id) Button button; Fragment 1.在Fragment的类上 @ContentView(R.layout.xxx) 2.Fragment的onCreateView中进行初始化 View view = x.View().inject(Fragment,LayoutInflater,Viewgroup); 3.onCreateView中返回 x.view返回的View 4. @ViewInJect(控件的id) Button button;
Adapter
1.创建ViewHodler2.@ViewInJect(控件的id) Button button; 3.getView中初始化ViewHolder 4.ViewHolder绑定 x.view().inject(ViewHolder,convertView);
事件处理:
1.声明对应的方法 -方法必须私有 private -方法的返回值 和 形参必须和对应的事件调用的方法 一直 例如: buttton.setOnClickListener(new OnClickListener{ public void onClick(View view){ } }) 仿; private void xxx(View view) 2.设置为对应的事件 @Event(value={需要触发事件的控件id},type=事件的类型 默认 View.OnClickListener.class)
2.xutils Imaege 图片模块
默认缓存的路径: sdcard/Android/data/包名/cache/xutil_img 默认图片格式: Bitmap.Config.RGB_565
默认是否加载gif图片:ignoreGif = true 不加载
x.image().bind(imageView, url, imageOptions);
// assets file
x.image().bind(imageView, “assets://test.gif”, 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() {…});
x.image().loadDrawable(url, imageOptions, new Callback.CommonCallback() {…});
x.image().loadFile(url, imageOptions, new Callback.CommonCallback() {…});3.xutils 网路请求模块
参数1:请求方式 HttpMethod.GET
参数2:请求的参数
创建 构造方法中 指定请求的路径
RequestParams params = new RequestParams(“http://10.10.154.67/HttpServlet/pic/HelloServlet?fileName=s.rar“);params.addParams(key,values); 上传文件: params.setMultipart(true); //多部分上传 key: web后台和你协商 jpg file rar value:要上传的文件 //设置下载保存的路径 params.setSaveFilePath(Environment.getExternalStorageDirectory()+File.separator+"xx.rar");
参数3: CallBack
1.CommonCallBack