真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

使用Android如何實(shí)現(xiàn)一個(gè)長按圓環(huán)動(dòng)畫View效果-創(chuàng)新互聯(lián)

使用Android如何實(shí)現(xiàn)一個(gè)長按圓環(huán)動(dòng)畫View效果?相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

堅(jiān)守“ 做人真誠 · 做事靠譜 · 口碑至上 · 高效敬業(yè) ”的價(jià)值觀,專業(yè)網(wǎng)站建設(shè)服務(wù)10余年為成都水泥攪拌車小微創(chuàng)業(yè)公司專業(yè)提供成都企業(yè)網(wǎng)站建設(shè)營銷網(wǎng)站建設(shè)商城網(wǎng)站建設(shè)手機(jī)網(wǎng)站建設(shè)小程序網(wǎng)站建設(shè)網(wǎng)站改版,從內(nèi)容策劃、視覺設(shè)計(jì)、底層架構(gòu)、網(wǎng)頁布局、功能開發(fā)迭代于一體的高端網(wǎng)站建設(shè)服務(wù)。

一、需求來源

最近想到一個(gè)需求,類似悅跑圈或者Keep的結(jié)束按鈕動(dòng)畫

使用Android如何實(shí)現(xiàn)一個(gè)長按圓環(huán)動(dòng)畫View效果
使用Android如何實(shí)現(xiàn)一個(gè)長按圓環(huán)動(dòng)畫View效果

二、思路代碼

該動(dòng)畫按鈕的主要作用就是防止用戶誤操作,具體實(shí)現(xiàn)思路如下:
1、監(jiān)聽用戶的觸摸事件OnTouchListener,在ACTION_DOWN的時(shí)候,記錄下xy坐標(biāo)和觸摸時(shí)間,同時(shí)start自定義View動(dòng)畫;在ACTION_MOVE的過程中,判斷坐標(biāo)差值的偏移量是否在一個(gè)可接受的范圍內(nèi),是的話就保留當(dāng)前動(dòng)畫,不是的話就清除按鈕上繪制的path;在ACTION_UP的時(shí)候,再次記錄下觸摸時(shí)間,比較兩個(gè)時(shí)間是否達(dá)到了長按規(guī)定的時(shí)間,是的話就執(zhí)行下一個(gè)事件,不是的話就停止動(dòng)畫重置Path。

val touchMax = 50
    var lastX = 0
    var lastY = 0
    circleView.setOnTouchListener(object : View.OnTouchListener{
      override fun onTouch(p0: View?, motionEvent: MotionEvent): Boolean {
        val endTime: Long
        val x = motionEvent.x
        val y = motionEvent.y
        when (motionEvent.action) {
          MotionEvent.ACTION_DOWN -> {
            startTime = System.currentTimeMillis()
            lastX = x.toInt()
            lastY = y.toInt()
            circleView.startAnim()
          }
          MotionEvent.ACTION_UP -> {
            endTime = System.currentTimeMillis()
            val during = endTime - startTime
            if (during < App.LONG_CLICK_TIME) {
              circleView.cancelAnim()
              circleView.clearAll()
            }else{
              playMaxWarn()
            }
          }
          MotionEvent.ACTION_MOVE -> {
            if (abs(lastX - x) > touchMax || abs(lastY - y) > touchMax) {
              circleView.clearAll()
            }
          }
        }
        return false
      }
    })

分享題目:使用Android如何實(shí)現(xiàn)一個(gè)長按圓環(huán)動(dòng)畫View效果-創(chuàng)新互聯(lián)
鏈接地址:http://weahome.cn/article/ejioo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部