ktolin开发android的扩展包android-ktx

android-ktx是谷歌刚刚开源的使用kotlin开发android的扩展包,它的目的是为了让使用kotlin开发android更简洁。目前只是发布的预览版本。可以体验一下,预览版说明以后的api可能会稍微变动变。
android-ktx 目前支持的组件有 view ,SharedPreferences ,Canvas , Animator等

首先使用android-ktx 需要在gradle中引入包

 implementation 'androidx.core:core-ktx:0.1'

使用kotlin把一个字符串转换成Uri可以这么写

val uri = Uri.parse(myUriString)

使用android-ktx 可以简化为

val uri = myUriString.toUri()

使用kotlin编写偏好设置SharedPreferences

sharedPreferences.edit()
    .putBoolean("key", value)
    .apply()

使用android-ktx 可以直接使用Lambda表达式简化

sharedPreferences.edit {
    putBoolean("key", value)
}

如果我们想使用绘图api将两条路径平移100像素 使用kotlin

val pathDifference = Path(myPath1).apply {
    op(myPath2, Path.Op.DIFFERENCE)
}

canvas.apply {
  val checkpoint = save()
  translate(0F, 100F)
  drawPath(pathDifference, myPaint)
  restoreToCount(checkpoint)
}

使用android-ktx简单多

val pathDifference = myPath1 - myPath2

canvas.withTranslation(y = 100F) {
    drawPath(pathDifference, myPaint)
}

如果我们想在绘制之前做些事情使用kotlin是

//绘制前的监听
view.viewTreeObserver.addOnPreDrawListener(
    object : ViewTreeObserver.OnPreDrawListener {
        override fun onPreDraw(): Boolean {
            viewTreeObserver.removeOnPreDrawListener(this)
            actionToBeTriggered()
            return true
        }
    })

使用android-ktx只需要一句话

view.doOnPreDraw {
     actionToBeTriggered()
}

具体文档可以查看 https://android.github.io/android-ktx/core-ktx/

比如当我们使用android-ktx 写动画的时候 可以直接监听它的回调

animator.addListener { handleAnimation(it) }

也可以监听动画的各种周期函数

animator.addListener(
        onEnd = {}, 
        onStart = {}, 
        onCancel = {}, 
        onRepeat = {}
)

在比如让一个文本加粗

val builder = SpannableStringBuilder(urlString)        
    .bold { append("hi there") }

让一个bitmap对象转换成drawable 对象更加容易

 var birmap = BitmapFactory.decodeResource(resources,R.drawable.ic_launcher_background)
 val toDrawable = birmap.toDrawable(resources)

还有很多,都可以在文档中看到。不过现在是预览版,以后稳定版的api可能有所变动。
Android KTX 的扩展包名称都以 androidx 开头,同时,今后 Android Support Library 包也将采用该新前缀。谷歌希望通过区分命名 android.* 和 androidx.*,能帮助开发者更清楚地辨识哪些 API 是和平台绑定的,哪些又是为稳定版支持库开发的,帮助开发者为不同版本的 Android 进行 App 开发。

未来谷歌计划将 Android KTX 作为 Android Support Library 进行发布。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值