首先,这是一个Kotlin类库,若是你的项目是JAVA写的,那就暂时帮不上你的忙了。 其次,这个可不是官方那个android-ktx
。前端
随着项目愈来愈多,咱们必然抽取大量的工具类和公共模块。Java的工具类看起来已经很简单了,可是Kotlin的扩展又让其简洁性和易用性上了一个等级,并且还有点AOP的功能。这里我再也不多说Kotlin的好处了,我是一个Kotlin的爱好者和推广者,咱们公司的后台,安卓和前端核心代码全线切为Kotlin了,开发效率大大提高;若是你想快乐的写代码,那就用Kotlin吧!android
这个类库对经常使用的使用场景进行了封装,包括Http,目标是替代你项目中的全部工具类。来看看几个例子吧:git
view.click {
toast("do something")
}
复制代码
除了写法简洁一点,它内部还实现了事件的节流。限制用户在350ms内只能点击一次,相信你遇到过用户快速点击按钮开启多个Activity的场景。github
"123456".md5()
"123456".sha1()
"123456".sha1Hmac(salt) // 随机数加强的哈希
//...
复制代码
项目中常常遇到对字符串进行hash,类库提供了常见的md5, sha1, sha256, 随机数增长哈希,AES,DES等算法的封装。算法
"我是测试".v()
"我是测试".i()
"我是测试".w()
"我是测试".d()
"我是测试".e()
复制代码
val str = "我是测试文字"
tvSizeResult.sizeSpan(str, 0..2)
tvSizeResult.sizeSpan(str, 0..2, scale = .7f) //改变scale能够控制放大或缩小,scale默认是1.5
复制代码
tvColorResult.colorSpan(str,2..6)
复制代码
tvStrikethrougthResult.strikeThrougthSpan(str,2..6)
复制代码
主要是加载图片的封装:json
// 底层是封装Glide来加载图片
imageView.load(url)
imageView.load(url, placeholder = R.mipmap.ic_launcher, isCircle = true)
imageView.load(url, placeholder = R.mipmap.ic_launcher, roundRadius = 20)
复制代码
对OkHttpUtils和OkGo都不满意,因而造了一个。 请求:bash
//Get请求
val user = "http://192.168.1.103:3000/json".http().get<User>()
//Post请求,传递header和params
val user = "http://192.168.1.103:3000/json".http()
.headers("device" to "HuaWeiMate20", ...)
.params("token" to "188sas9cf99a9d",
"file" to file, //上传文件
...)
.post<User>()
复制代码
上面的示例自己须要在协程中使用;也是我最喜欢和最推荐的方式。若是你不用协程,则能够用callback style
:app
"http://192.168.1.103:3000/json".http().get(object : HttpCallback<String> {
override fun onSuccess(t: String) {
}
override fun onFail(e: IOException) {
super.onFail(e)
}
})
复制代码
内置了简洁实用的日志打印器: ide
其余设置:工具
// 设置自定义的Client
OkWrapper.setClient(...)
// 设置全局header
OkWrapper.headers("header1" to "a", "header2" to "b", ...)
// 设置拦截器
OkWrapper.interceptors(...)
// 取消请求
"http://192.168.1.103:3000/json".http(tag = "abc").get<String>() //须要先指定tag
OkWrapper.cancel("abc")
复制代码
上面的只是类库中很小的一部分,更多的使用详情请看Github的README吧,但愿能帮助到你。
Github地址:github.com/li-xiaojun/…
欢迎您在Issue中提出一些建议和意见,来共同完善这个库。若是您喜欢它,也能够给个Star。