美文网首页动画.炫酷
Android按钮点击缩放效果

Android按钮点击缩放效果

作者: Benhero | 来源:发表于2019-11-09 17:17 被阅读0次

刚刚在做点击缩放的效果,虽然5、6年前就已经实现过一版了,但是技术的迭代更新,实现方案也进化了,相比之前(自定义View,不同类型的系统组件都要封装一次)简洁太多了,所以拿出来和大家分享下。

效果

TextView、Button、LinearLayout等等所有View的子类,都可以兼容。


addClickScale.gif

代码

关键部分
/**
 * 添加点击缩放效果
 */
fun View.addClickScale(scale: Float = 0.9f, duration: Long = 150) {
    this.setOnTouchListener { _, event ->
        when (event.action) {
            MotionEvent.ACTION_DOWN -> {
                this.animate().scaleX(scale).scaleY(scale).setDuration(duration).start()
            }
            MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> {
                this.animate().scaleX(1f).scaleY(1f).setDuration(duration).start()
            }
        }
        // 点击事件处理,交给View自身
        this.onTouchEvent(event)
    }
}
使用
      btn.addClickScale()
方案解析
  1. 监听OnTouchListener ,然后回调OnClickListener,这样满足了大部分场景下的需求。
  2. 由于使用了Kotlin的拓展函数,极大地减少了太多代码,支持所有类型的View。想象下,若是使用Java实现,则需要非常多的代码去封装各种类型的View,代码非常冗余。

Kotlin真香!

相关文章

网友评论

    本文标题:Android按钮点击缩放效果

    本文链接:https://www.haomeiwen.com/subject/gmenbctx.html