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目前的不足在于:第一,动画单一,可定制性不高;第二,不能实现下拉波浪水滴刷新效果。根据研发需求,拟实现下拉波浪水滴刷新效果,丰富下拉刷新的交互效果,提升用户体验。在酷我音乐盒的推荐功能中,其首页目前采用线条刷新动画,这一交互动画非常常见 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。