美文网首页动画.炫酷
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