一种水滴下拉刷新实现方法技术

技术编号:20285094 阅读:41 留言:0更新日期:2019-02-10 17:45
本发明专利技术涉及一种水滴下拉刷新实现方法,包括如下步骤:定义并实现类WaveView,用来绘制波浪及水滴相关特效,定义并实现类MaterialProgressDrawable,用来设置圆形滚动条样式,刷新过程中的圆形滚动动画效果,定义并实现类AnimationImageView,用来设置动画的监听操作,定义并实现类ProgressAnimationImageView,用来提供旋转动画的自定义控件,定义并实现类WaveSwipeRefreshLayout,用来放置列表视图、带箭头的圆圈刷新视图和水滴波浪视图,处理触摸事件,用来刷新动画状态的设置、刷新接口的回调。本发明专利技术,实现下拉波浪水滴刷新效果,算法可扩展性好,支持设置波纹和水滴的颜色、动画时间等特效,增加用户体验效果。

A Drop Down Refresh Method

The invention relates to a method for realizing drop-down refresh of water droplets, including the following steps: defining and implementing WaveView-like, which is used to draw special effects related to waves and droplets, defining and implementing Material Progress Drawable-like, which is used to set the style of circular scroll bar, to refresh the effect of circular scroll animation in the process, and defining and realizing Animation ImageView-like, which is used to set up the monitoring operation of animation The class Progress Animation Image View is defined and implemented to provide custom controls for rotating animation, WaveSwipeRefreshLayout is defined and implemented to place list view, circle refresh view with arrows and water drop wave view, handle touch events, refresh the settings of animation status and refresh callbacks of interface. The invention realizes the refreshing effect of pull-down wave water droplets, has good scalability of the algorithm, supports setting the color of ripples and water droplets, animation time and other effects, and increases the user experience effect.

【技术实现步骤摘要】
一种水滴下拉刷新实现方法
本专利技术涉及下拉刷新交互设计
,具体说是一种水滴下拉刷新实现方法。
技术介绍
在Android系统中提供了下拉刷新的控件SwipeRefreshLayout,当下拉到了一定的高度就会进行刷新,下拉高度不够就会回收上去,在刷新过程中,下拉操作没有反应,即刷新时需要屏蔽掉下拉事件。控件SwipeRefreshLayout主要应用在竖直滑动时想要刷新页面,它通过设置OnRefreshListener来监听界面的滑动从而实现刷新。当然,也可以通过一些方法来设置SwipeRefreshLayout是否可以刷新。例如:设置setRefreshing(true),则展开刷新动画。设置setRefreshing(false),则取消刷新动画。设置setEnable(true)下拉刷新将不可用。控件SwipeRefreshLayout在使用时,需要注意:使用这个布局要想达到刷新的目的,需要在这个布局里包裹可以滑动的子控件,如ListView等,并且只能有一个子控件。综上,使用SwipeRefreshLayout可以实现下拉刷新,前提是布局里需要包裹一个可以滑动的子控件,然后在代码里设置OnRefreshListener设置监听,最后在监听里设置刷新时的数据获取就可以了。控件SwipeRefreshLayout目前的不足在于:第一,动画单一,可定制性不高;第二,不能实现下拉波浪水滴刷新效果。根据研发需求,拟实现下拉波浪水滴刷新效果,丰富下拉刷新的交互效果,提升用户体验。在酷我音乐盒的推荐功能中,其首页目前采用线条刷新动画,这一交互动画非常常见,缺乏个性化,现考虑对其进行优化,实现下拉波浪水滴刷新效果。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种水滴下拉刷新实现方法,实现下拉波浪水滴刷新效果,算法可扩展性好,支持设置波纹和水滴的颜色、动画时间等特效,增加用户体验效果。为达到以上目的,本专利技术采取的技术方案是:一种水滴下拉刷新实现方法,其特征在于,包括如下步骤:定义并实现类WaveView,继承Android系统提供的View控件,用来绘制波浪及水滴相关特效,定义并实现类MaterialProgressDrawable,继承Android系统提供的Drawable类,用来设置一个Material风格的圆形滚动条样式,用于设置刷新过程中的圆形滚动动画效果,定义并实现类AnimationImageView,继承Android系统提供的图片展示控件ImageView,用来设置动画的监听操作,定义并实现类ProgressAnimationImageView,继承自定义类AnimationImageView,用来提供旋转动画的自定义控件,定义并实现类WaveSwipeRefreshLayout,继承Android系统提供的视图容器ViewGroup,用来放置可滑动的列表视图、带箭头的圆圈刷新视图和水滴波浪视图,用来处理相关触摸事件,对事件进行拦截和分发,用来刷新动画状态的设置、刷新接口的回调。在上述技术方案的基础上,在类WaveView中,具体包括:绘制波浪相关属性,包括:变量mWavePath,是Android系统提供的Path类型的变量,用来保存上部波浪特效的路径,绘制水滴相关属性,包括:变量mDropCircleRadius,是Android系统提供的浮点数据类型的变量,用来定义水滴圆的半径,变量mDropTangentPath,是Android系统提供的Path类型的变量,用来保存水滴上面的三角形的路径,变量mDropCirclePath,是Android系统提供的Path类型的变量,用来保存水滴下面的圆的路径,变量mDropRect,是Android系统提供的Rect类型的变量,用来保存水滴底部长方形的坐标信息,用来绘制椭圆,绘制操作相关属性,包括:变量mPaint,是Android系统提供的画笔Paint类型的变量,用来绘制波浪及水滴图像,常量DROP_CIRCLE_ANIMATOR_DURATION,是Android系统提供的长整形long类型的常量,用来设置动画执行的时间,默认值为500毫秒,重写波浪视图中的onDraw方法,用来绘制波浪图像,水滴状图像,定义beginPhase方法用来计算下拉时的波浪曲线,appearPhase方法用来计算制波浪下拉到一定距离形成水滴的状态曲线,expandPhase方法用来计算继续下拉水滴下落时的曲线,定义方法startDropAnimation,用来控制水滴下落时的动画效果。在上述技术方案的基础上,在类MaterialProgressDrawable中,具体包括:内部类Ring是Android系统提供的Object类型的对象,用来绘制带箭头的圆形样式,常量ARROW_WIDTH是Android系统提供的整型类型的常量,用来设置箭头的宽度,常量ARROW_HEIGHT是Android系统提供的整型类型的常量,用来设置箭头的高度,常量ARROW_OFFSET_ANGLE是Android系统提供的整型类型的常量,用来设置箭头的角度,变量mResources是Android系统提供的Resources资源类型的变量,用来获取显示器的逻辑密度,变量mAnimation是Android系统提供的Animation动画类型的变量,用来执行圆形的旋转动画,变量mRotationCount是Android系统提供的浮点数据类型的变量,用来设置旋转动画执行的次数,变量mWidth和mHeight,都是Android系统提供的双精度double类型的变量,用来设置圆的大小,变量mRotation,是Android系统提供的浮点数据类型的变量,用来记录带箭头圆旋转的角度信息,定义方法draw,用来绘制旋转圆的动画效果。在上述技术方案的基础上,在类ProgressAnimationImageView中,具体包括:变量mProgress,是自定义MaterialProgressDrawable类型的变量,用来提供ImageView设置的Drawable,给控件添加带箭头圆的旋转动画效果。在上述技术方案的基础上,在类WaveSwipeRefreshLayout中,具体包括:接口OnRefreshListener和其中的抽象方法onRefresh,用来对刷新中的状态回调,枚举类型STATE,里面有两个状态分别是REFRESHING和PENDING,用来表示正在刷新中和准备刷新,枚举类型EVENT_PHASE,里面有5中状态分别是WAITING等待中、BEGINNING出现波浪、APPEARING形成水滴、EXPANDING水滴下沉、DROPPING水滴下落,变量mState是STATE枚举类型的变量,初始状态设置为STATE.PENDING,用来标记刷新的状态,变量mEventPhase是EVENT_PHASE枚举类型的变量,初始值设置为EVENT_PHASE.WAITING,用来标记下拉波浪水滴不同位置的状态,变量mTarget是Android系统提供的View类型的变量,用来获取可以滑动的列表控件,变量mCircleView是自定义圆形旋转Prog本文档来自技高网
...

【技术保护点】
1.一种水滴下拉刷新实现方法,其特征在于,包括如下步骤:定义并实现类WaveView,继承Android系统提供的View控件,用来绘制波浪及水滴相关特效,定义并实现类MaterialProgressDrawable,继承Android系统提供的Drawable类,用来设置一个Material风格的圆形滚动条样式,用于设置刷新过程中的圆形滚动动画效果,定义并实现类AnimationImageView,继承Android系统提供的图片展示控件ImageView,用来设置动画的监听操作,定义并实现类ProgressAnimationImageView,继承自定义类AnimationImageView,用来提供旋转动画的自定义控件,定义并实现类WaveSwipeRefreshLayout,继承Android系统提供的视图容器ViewGroup,用来放置可滑动的列表视图、带箭头的圆圈刷新视图和水滴波浪视图,用来处理相关触摸事件,对事件进行拦截和分发,用来刷新动画状态的设置、刷新接口的回调。

【技术特征摘要】
1.一种水滴下拉刷新实现方法,其特征在于,包括如下步骤:定义并实现类WaveView,继承Android系统提供的View控件,用来绘制波浪及水滴相关特效,定义并实现类MaterialProgressDrawable,继承Android系统提供的Drawable类,用来设置一个Material风格的圆形滚动条样式,用于设置刷新过程中的圆形滚动动画效果,定义并实现类AnimationImageView,继承Android系统提供的图片展示控件ImageView,用来设置动画的监听操作,定义并实现类ProgressAnimationImageView,继承自定义类AnimationImageView,用来提供旋转动画的自定义控件,定义并实现类WaveSwipeRefreshLayout,继承Android系统提供的视图容器ViewGroup,用来放置可滑动的列表视图、带箭头的圆圈刷新视图和水滴波浪视图,用来处理相关触摸事件,对事件进行拦截和分发,用来刷新动画状态的设置、刷新接口的回调。2.如权利要求1所述的水滴下拉刷新实现方法,其特征在于:在类WaveView中,具体包括:绘制波浪相关属性,包括:变量mWavePath,是Android系统提供的Path类型的变量,用来保存上部波浪特效的路径,绘制水滴相关属性,包括:变量mDropCircleRadius,是Android系统提供的浮点数据类型的变量,用来定义水滴圆的半径,变量mDropTangentPath,是Android系统提供的Path类型的变量,用来保存水滴上面的三角形的路径,变量mDropCirclePath,是Android系统提供的Path类型的变量,用来保存水滴下面的圆的路径,变量mDropRect,是Android系统提供的Rect类型的变量,用来保存水滴底部长方形的坐标信息,用来绘制椭圆,绘制操作相关属性,包括:变量mPaint,是Android系统提供的画笔Paint类型的变量,用来绘制波浪及水滴图像,常量DROP_CIRCLE_ANIMATOR_DURATION,是Android系统提供的长整形long类型的常量,用来设置动画执行的时间,默认值为500毫秒,重写波浪视图中的onDraw方法,用来绘制波浪图像,水滴状图像,定义beginPhase方法用来计算下拉时的波浪曲线,appearPhase方法用来计算制波浪下拉到一定距离形成水滴的状态曲线,expandPhase方法用来计算继续下拉水滴下落时的曲线,定义方法startDropAnimation,用来控制水滴下落时的动画效果。3.如权利要求1所述的水滴下拉刷新实现方法,其特征在于:在类MaterialProgressDrawable中,具体包括:内部类Ring是Android系统提供的Object类型的对象,用来绘制带箭头的圆形样式,常量ARROW_WIDTH是Android系统提供的整型类型的常量,用...

【专利技术属性】
技术研发人员:孙征
申请(专利权)人:北京酷我科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1