【技术实现步骤摘要】
一种弧线变速运动的动画算法
本专利技术涉及应用的加载动画
,具体说是一种弧线变速运动的动画算法。
技术介绍
现有的应用程序(例如App),在打开运行时,总会看到一个加载动画页面,以便在等待加载的过程中,用户可以知晓应用程序正在工作、加载的进度等信息。常见的加载动画页面,有的是呈现一张静态图片,有的是呈现一组图片实现动画效果,有的是呈现一段短视频实现动画效果,为了凸显个性化,丰富加载动画页面的功能及动画效果,有必要对加载动画页面进行优化、再设计。根据公司目前的开发计划,拟实现一种模拟能量守恒双摆球的动画效果,该动画效果作为新版App的加载动画页面。所述模拟能量守恒双摆球动画效果中,包括沿水平方向依次排列的多颗小球(通常是奇数个),这些小球中,最左侧和最右侧的小球交替的被弹出并回落,小球的移动轨迹为弧线,且移动速度不恒定,故需要专门设计相应的轨迹移动算法。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种弧线变速运动的动画算法,自定义控件,实现圆弧摆动的效果,模拟能量守恒球不断碰撞的动画效果,呈现全新的加载动画页面,凸显个性化及App,具一定扩展性,可修改制作其他样式的加载动画效果,提高开发效率。为达到以上目的,本专利技术采取的技术方案是:一种弧线变速运动的动画算法,其特征在于,包括如下步骤:创建画布Canvas,Canvas由android系统提供,供用户在上面进行绘制,在onDraw回调中,canvas.save()获取canvas保存的状态,以画布中心为中心进行画布旋转,创建一个新的绘制区域arcBounds做为缓存,并设置内边距m ...
【技术保护点】
1.一种弧线变速运动的动画算法,其特征在于,包括如下步骤:创建画布Canvas,Canvas由android系统提供,供用户在上面进行绘制,在onDraw回调中,canvas.save()获取canvas保存的状态,以画布中心为中心进行画布旋转,创建一个新的绘制区域arcBounds做为缓存,并设置内边距mStrokeInset,设置每次绘制时画笔mPaint的宽度mPaint.setStrokeWidth和颜色mPaint.setColor,创建画笔mPaint时刻一并创建绘制区域mTempBounds,绘制区域mTempBounds用于布局界面CircleRotateActivity,开始画圆弧canvas.drawArc,drawArc获取以下参数信息:第一个参数为圆弧的形状和大小的范围,第二个参数是设置圆弧是从哪个角度来绘画的,第三个参数是设置圆弧扫过的角度,第四个参数是设置圆弧在绘画的时候是否经过圆形,第五个参数是定义的画笔mPaint,最后再恢复到canvas最初的状态canvas.restoreToCount(saveCount)。
【技术特征摘要】
1.一种弧线变速运动的动画算法,其特征在于,包括如下步骤:创建画布Canvas,Canvas由android系统提供,供用户在上面进行绘制,在onDraw回调中,canvas.save()获取canvas保存的状态,以画布中心为中心进行画布旋转,创建一个新的绘制区域arcBounds做为缓存,并设置内边距mStrokeInset,设置每次绘制时画笔mPaint的宽度mPaint.setStrokeWidth和颜色mPaint.setColor,创建画笔mPaint时刻一并创建绘制区域mTempBounds,绘制区域mTempBounds用于布局界面CircleRotateActivity,开始画圆弧canvas.drawArc,drawArc获取以下参数信息:第一个参数为圆弧的形状和大小的范围,第二个参数是设置圆弧是从哪个角度来绘画的,第三个参数是设置圆弧扫过的角度,第四个参数是设置圆弧在绘画的时候是否经过圆形,第五个参数是定义的画笔mPaint,最后再恢复到canvas最初的状态canvas.restoreToCount(saveCount)。2.如权利要求1所述的弧线变速运动的动画算法,其特征在于:画布旋转角度mGroupRotation的计算方法如下:mGroupRotation=((FULL_GROUP_ROTATION/NUM_POINTS)*renderProgress)+(FULL_GROUP_ROTATION*(mRotationCount/NUM_POINTS));其中:FULL_GROUP_ROTATION是一次循环的角度,NUM_POINTS是循环总次数,renderProgress是当前变化的进度,mRotationCount是当前循环位置。3.如权利要求1所述的弧线变速运动的动画算法,其特征在于:设置每次绘制时画笔mPaint的宽度mPaint.setStrokeWidth时,调用getStrokeWidth()计算特定屏幕下画线的宽度,具体计算方式为:特定屏幕下画线的宽度等于设置的默认画线宽度*屏幕分辨率screenDensity。4.如权利要求1所述的弧线变速运动的动画算法,其特征在于:所述第一个参数,由createArcBounds(arcBounds,i)计算得出,确定圆弧的形状和大小范围,需要针对每个线确定下一个画布区域,创建临时的绘制区域arcBounds,其中intervalWidth+=getStrokeWidth()/(i+1.0f)*1.5f两条线间区域差为上一个线宽度的1.5倍,再根据上一个绘制区域的位置和两条线间的...
【专利技术属性】
技术研发人员:孙征,
申请(专利权)人:北京酷我科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。