//fresco图片依赖 compile 'com.facebook.fresco:fresco:1.5.0' compile 'com.facebook.fresco:animated-gif:1.5.0'//加载gif动图需添加此库 compile 'com.facebook.fresco:animated-webp:1.5.0'//加载webp动图需添加此库 compile 'com.facebook.fresco:webpsupport:1.5.0'//支持webp需添加此库 compile 'com.facebook.fresco:imagepipeline-okhttp3:1.5.0'//网络实现层使用okhttp3需添加此库 compile 'jp.wasabeef:fresco-processors:2.1.0@aar'//用于提供fresco的各种图片变换
使用fresco需要在布局中添加一行代码
xmlns:fresco="http://schemas.android.com/apk/res-auto"
//另外一种图片的加载方式:glide
implementation 'com.github.bumptech.glide:glide:4.7.1'
//glide在适配器中加载数据图片的方式
Glide.with(context).load(data.miniimg.get(0).src).into(((Type2ViewHolder) holder).iv3);
//github
annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1'
//xrecyclerview
implementation 'com.jcodecraeer:xrecyclerview:1.5.9'
//ok
implementation 'com.squareup.okhttp3:logging-interceptor:3.10.0'implementation 'com.squareup.okhttp3:okhttp:3.10.0'
//gson
implementation 'com.google.code.gson:gson:2.8.5'
//解决版本冲突
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '27.1.1'
}
}
}
}
1.强大的view绑定和click事件处理,简化代码,提供了开发效率
2.方便的处理Adapter里的ViewHolder绑定问题
3.提供App运行效率,使用配置方便
4.代码清晰,可读性强
使用步骤:
1.在Gradle里关联依赖
2.在你要使用Butterknife的勒种进行初始化
3.加注解
4.通过Butterknife给控件加点击事件
有些公司让你使用,但是因为使用ButterKnife,
妈妈再也不用担心我findViewById(R.id.);,
所以还是有很多程序员在公司里没有明确禁止使用ButterKnife的情况下,使用他
我们必须知道ButterKnife的格式是什么样子,
以方便我们出去开发,维护人家写的项目,你看不懂这个格式
//ButterKnife依赖
compile 'com.jakewharton:butterknife:7.0.1'
8.0ButterKnife
还要在项目的gradle上面和下面都要添加依赖,太麻烦
不过还是有简单的方法的,只需要在gradle中添加这下面两行依赖就可以了
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
EventBus依赖
compile 'org.greenrobot:eventbus:3.0.0'
EventBus(单例模式,但是并没有把他的构造方法私有化,可以new出来):
可以代替Handler和Intent(跳转传值)
创建Module,关联EventBus框架,创建第2个Activity
完成Module的布局及控件的初始化
注册EventBus,解除EventBus注册
创建EventBus消息类,设置属性
使用EventBus的Post方法发送事件
根据消息类,接收事件
写接受消息方法的时候,方法名自定义,但是权限呢必须是public
参数必须和发送消息的消息类一致。
如果不一致就什么都没有,如果没有public就会崩溃
注册EventBUs拿到订阅方法就两种手段
注释:是为了方便阅读代码
1.注解:参与代码编译,以@开头的。它是给应用程序看的,
单独使用注解毫无意义,一定要跟工具一起使用,
这个所谓的工具实际就是能读懂注解的应用程序
注释 :对代码没有影响。对代码起到解释、说明的作用
2.反射
EventBus用组件与组件之间的传递代替intent,线程中的通信替代handler
提示:发送方的线程也会影响到接受方
粘性事件就是指在EventBus内部被缓存的事件
Retrofit是基于okhttp的封装,升级,Retrofit网络请求底层用到的网络框架,就是okhttp
https://www.jianshu.com/p/0fda3132cf98
使用REST API非常方便
Retrofit默认使用okhttp处理网络请求;
默认使用Gson解析
你要是指定Gson,你必须加统一的依赖
compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'
@GET GET网络请求方式
@POST POST网络请求方式
@Headers 头信息参数
@Path 路径参数.替换url地址中 "{" 和 "}"所包括的部分
@Query 查询参数.将在url地址中追加类似"page = 1"的字符串,形成提交给服务器端的请求参数
@QueryMap 查询参数集合.在url地址中追加类似"type = text & count = 30 & page = 1 " 的字符串
@FormUrlEncoded 对表单域中填写内存进行编码处理,避免乱码
@Field 指定from表单域中每个控件的name及相应数值
@FieldMap 表单域集合
@Multipart Post提交分块请求.如果上传文件,必须指定Multipart
@Part Post提交分块请求
@Body Post提交分块请求
Retrofit与OKhttp的不同:1.设置请求方式是注解的形式 2.接口拼接字符串更灵活 3.异步响应回调方法在主线程