Android按鈕點擊縮放效果

剛剛在做點擊縮放的效果,雖然5、6年前就已經(jīng)實現(xiàn)過一版了,但是技術(shù)的迭代更新,實現(xiàn)方案也進化了,相比之前簡潔太多了,所以拿出來和大家分享下。

效果

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


addClickScale.gif

代碼

關(guān)鍵部分
/**
 * 添加點擊縮放效果
 */
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. 監(jiān)聽OnTouchListener ,然后回調(diào)OnClickListener,這樣滿足了大部分場景下的需求。
  2. 由于使用了Kotlin的拓展函數(shù),極大地減少了太多代碼,支持所有類型的View。

Kotlin真香!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容