使用Android如何实现一个长按圆环动画视图效果

  介绍

使用Android如何实现一个长按圆环动画视图效果?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

最近想到一个需求,类似悦跑圈或者保持的结束按钮动画

使用Android如何实现一个长按圆环动画视图效果”> <br/> <img src=

该动画按钮的主要作用就是防止用户误操作,具体实现思路如下:
1,监听用户的触摸事件OnTouchListener,在ACTION_DOWN的时候,记录下xy坐标和触摸时间,同时开始自定义观点动画;在ACTION_MOVE的过程中,判断坐标差值的偏移量是否在一个可接受的范围内,是的话就保留当前动画,不是的话就清除按钮上绘制的路径;在ACTION_UP的时候,再次记录下触摸时间,比较两个时间是否达到了长按规定的时间,是的话就执行下一个事件,不是的话就停止动画重置路径。

 val touchMax=50
  var lastX=0
  var lastY=0
  circleView。setOnTouchListener(对象:View.OnTouchListener {
  覆盖乐趣>乐趣startAnim () {
  清晰=false
  valueAnimator=valueAnimator。ofFloat (359.9999 0 f, f)
  valueAnimator ! !。时间=App.LONG_CLICK_TIME
  valueAnimator ! !。addUpdateListener{动画→
  mProgress=动画。animatedValue作为浮动
  无效()
  }
  valueAnimator ! ! .start ()
  }

最终实现效果图虽然没有上面那么好看,但基本效果还是达到了

使用Android如何实现一个长按圆环动画视图效果

包cn.xmliu.melongo.view
  
  进口android.animation.ValueAnimator
  进口android.content.Context
  进口android.graphics。*
  进口android.util.AttributeSet
  进口android.view.View
  进口androidx.core.content.ContextCompat
  进口cn.xmliu.melongo.App
  进口cn.xmliu.melongo.R/* *
  *日期:2020/8/12 13:21
  *电子邮件:diyangxia@163.com
  *描述:长按动画视图
  */类LongCircleView(背景:Context& # 63; attrs: AttributeSet& # 63;):视图(上下文,attrs) {/* *
  *画笔
  */私人val涂=()
  私人var arcPath: Path& # 63;=零
  私人var rectF: RectF& # 63;=零
  私人var lineColor=0/* *
  *中心点坐标,半径
  */私人var centerX: Float& # 63;=零
  私人var centerY: Float& # 63;=零
  私人var半径:Float& # 63;=零
  
  私人var=1 f
  私人var=1 f
  私人var=1 f
  私人var=1 f
  私人val抵消=10
  
  私人var mProgress=1 f
  私人var valueAnimator: valueAnimator, # 63;=零
  私人var清晰=true
  
  init {
  lineColor=ContextCompat.getColor(上下文! !R.color.red)
  
  }
  
  覆盖乐趣> & lt;使用
  android: layout_width=皐rap_content"
  android: layout_marginTop=? dp"
  android: layout_height=皐rap_content"比;
  
  LinearLayout & lt;
  android: id=癅 + id/flashLayout"
  android: layout_centerInParent=皌rue"
  android: layout_width=?0 dp"
  android: layout_height=?0 dp"
  android:背景=癅drawable/btn_circle_white"
  android:重力=癱enter_horizontal"
  android:取向=皏ertical"比;
  
  & lt; ImageView
  android: id=癅 + id/flashIV"
  android: layout_width=?0 dp"
  android: layout_height=?0 dp"
  android:填充=? dp"
  android: src=https://www.yisu.com/zixun/癅drawable/menu_flash_black”
  android:文本="闪灯开”
  android:色=" @color/main_color "/>
  
  
  LinearLayout 
  
  
   
 val touchMax=50
  var lastX=0
  var lastY=0
  circleView。setOnTouchListener(对象:View.OnTouchListener {
  覆盖乐趣>看完上述内容,你们掌握使用Android如何实现一个长按圆环动画视图效果的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读! 

使用Android如何实现一个长按圆环动画视图效果