一种扩散粒子动画的实现方法技术

技术编号:20046765 阅读:25 留言:0更新日期:2019-01-09 04:45
本发明专利技术涉及一种扩散粒子动画的实现方法,包括如下步骤:定义粒子数据类Particle,继承Android系统提供的Object对象,定义画笔变量mPaint,定义方法draw,对粒子进行旋转、缩放、平移和渐变处理并绘制;定义类ParitcleField继承Android系统提供的View类,重写onDraw方法,在控件上绘制粒子集;定义类ParticleSystem继承Android系统提供的Object类,用来控制粒子的生成和显示,包括用来绘制粒子集,用来提供动画的控制,用来生成粒子集合,用来控制开启动画。本发明专利技术,采用自定义控件,在点击背景图片区域时,可以动态的添加扩散粒子动画效果,可扩展性强,增加用户体验,无需改变原控件布局和设置,提高开发效率。

【技术实现步骤摘要】
一种扩散粒子动画的实现方法
本专利技术涉及触屏交互动画设计领域,具体说是一种扩散粒子动画的实现方法。
技术介绍
现有的Android系统中,为优化显示效果,提供了控件用于呈现背景图片,但背景图片不便于设置动画效果或动画特效,因此有进一步改进优化的必要,以提升用户体验,尤其是在点击背景图片区域时,增加相应的触屏交互动画,可丰富交互体验,提升App的使用体验。在酷我音乐盒中,提供音乐片段功能,包含了视频播放,有点赞逻辑,如果在点赞功能中提供点击背景图片区域,呈现交互动画效果,则有助于提升用户体验,增强参与感。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种扩散粒子动画的实现方法,采用自定义控件,在点击背景图片区域时,可以动态的添加扩散粒子动画效果,可扩展性强,增加用户体验,无需改变原控件布局和设置,提高开发效率。为达到以上目的,本专利技术采取的技术方案是:一种扩散粒子动画的实现方法,其特征在于,包括如下步骤:定义粒子数据类Particle,继承Android系统提供的Object对象,在粒子数据类Particle中,存放以下信息:粒子的位图、当前的坐标点、缩放比例、渐变值、旋转速度、移动速度、初始坐标值和动画时长,粒子数据类Particle中,进一步包括:定义变量mPaint是Android系统提供的画笔Paint类型的变量,用来绘制粒子,定义变量mRotation是Android系统提供的浮点数据类型的变量,用来记录粒子当前的旋转角度,定义方法update,根据当前时间用来计算粒子当前的x轴坐标和y轴坐标及粒子的旋转角度,定义方法draw,对粒子进行旋转、缩放、平移和渐变处理并绘制;定义类ParitcleField继承Android系统提供的View类,用来绘制显示粒子,在类ParitcleField中,进一步包括:定义变量mParticles是Android系统提供的集合ArrayList数据类型的变量,用来存放粒子,定义方法setParticles,用来给mParticles赋值,添加绘制的粒子集信息,重写onDraw方法,在控件上绘制粒子集;定义类ParticleSystem继承Android系统提供的Object类,用来控制粒子的生成和显示,在类ParticleSystem中,进一步包括:定义变量mParentView是Android系统提供的ViewGroup类型的变量,用来放置粒子控件,定义变量mDrawingView是自定义粒子显示控件ParticleField类型的变量,用来绘制粒子集,定义变量mAnimator是Android系统提供的ValueAnimator类型的变量,用来提供动画的控制,定义变量mParticles是Android系统提供的ArrayList集合类型的变量,用来生成粒子集合,定义方法oneShot用来初始化自定义粒子控件,添加到当前窗体容器中并开启动画,定义方法startAnimator,用来控制开启动画。在上述技术方案的基础上,所述预设的区域为背景图片区域。在上述技术方案的基础上,定义变量mImage是Android系统提供的Bitmap位图类型的变量,用来存放粒子的位图,定义变量mCurrentX和mCurrentY都是Android系统提供的浮点数据类型的变量,用来存放当前粒子的坐标,定义变量mScale,是Android系统提供的浮点数据类型的变量,分别用来对位图进行缩放,定义变量mInitalRotation和mRotationSpeed,都是Android系统提供的浮点数据类型的变量,分别用来定义初始的旋转角度和旋转速度,定义变量mSpeedX和mSpeedY,都是Android系统提供的浮点数据类型的变量分别用来定义X轴方向的移动速率和Y轴方向的移动速率,定义变量mInitialX和mInitialY,都是Android系统提供的浮点数据类型的变量,分别用来定义粒子的初始坐标值,定义变量mMatrix是Android系统提供的矩阵Matrix类型的变量,用来对位图进行变换,定义变量mAlpha是Android系统提供的int数据类型的变量用来设置画笔的透明度对粒子进行渐变处理,定义变量mTimeToLive和mStartingMilisecond,都是Android系统提供的长整型long数据类型的变量,用来控制粒子移动的动画时长和动画开始的时间。在上述技术方案的基础上,在onDraw方法中,定义参数canvas是Android系统自定义View传入的画布Canvas类型的变量用来绘制,定义Android系统提供的线程同步关键字synchronized用来在线程中控制绘制信息,定义变量mParticles是Android系统提供的集合类型的变量,存放粒子集信息,采用循环遍历粒子集合的方式,分别调用其中的draw方法,在画布上绘制粒子。在上述技术方案的基础上,在类ParticleSystem中,进一步包括:定义变量构造方法ParticleSystem,传入视图容器控件,最大的粒子数目,粒子的图片和粒子的动画时长,定义方法setSpeedRange返回自定义ParticleSystem类型,传入粒子运动的最小速度和最大速度。在上述技术方案的基础上,在类ParticleSystem中,进一步包括:定义方法activiteParticle用来生成和配置粒子初始坐标动等数据。在上述技术方案的基础上,在类ParticleSystem中,进一步包括:定义内部类ParticleTimerTask继承Android系统提供的定时任务功能类TimerTask,重新其中的run方法,用来刷新动画时间,定义方法startEmitting,用来初始化粒子控件添加到当前应用父控件容器,并开启定时任务。本专利技术所述的扩散粒子动画的实现方法,采用自定义控件,在点击背景图片区域时,可以动态的添加扩散粒子动画效果,可扩展性强,增加用户体验,无需改变原控件布局和设置,提高开发效率。本专利技术所述的扩散粒子动画的实现方法,适合于增添在酷我音乐盒中,在视频播放时作为点赞逻辑的增强,当用户点击一次或者连续多次点击,会显示粒子爆炸的效果,粒子可以是美工设计的任何图片或者表情包图片,而随着点击次数的增加,以及两次点击的时间间隔,可以显示强度不同的例子爆炸效果,点击越多间隔时间越短,粒子效果越强烈。用户体验良好,增加参与比。附图说明本专利技术有如下附图:图1本专利技术的流程图。具体实施方式以下结合附图对本专利技术作进一步详细说明。如图1所示,本专利技术所述的扩散粒子动画的实现方法,包括如下步骤:设定可见的或隐形的按钮Button,覆盖预设的区域,点击按钮则触发下述扩散粒子动画,也可采用其他方式触发,按钮的设置仅为可实施方案之一,定义粒子数据类Particle,继承Android系统提供的Object对象,在粒子数据类Particle中,存放以下信息:粒子的位图、当前的坐标点、缩放比例、渐变值、旋转速度、移动速度、初始坐标值和动画时长,粒子数据类Particle中,进一步包括:定义变量mPaint是Android系统提供的画笔Paint类型的变量,用来绘制粒子,定义变量mRotation是Android本文档来自技高网...

【技术保护点】
1.一种扩散粒子动画的实现方法,其特征在于,包括如下步骤:定义粒子数据类Particle,继承Android系统提供的Object对象,在粒子数据类Particle中,存放以下信息:粒子的位图、当前的坐标点、缩放比例、渐变值、旋转速度、移动速度、初始坐标值和动画时长,粒子数据类Particle中,进一步包括:定义变量mPaint是Android系统提供的画笔Paint类型的变量,用来绘制粒子,定义变量mRotation是Android系统提供的浮点数据类型的变量,用来记录粒子当前的旋转角度,定义方法update,根据当前时间用来计算粒子当前的x轴坐标和y轴坐标及粒子的旋转角度,定义方法draw,对粒子进行旋转、缩放、平移和渐变处理并绘制;定义类ParitcleField继承Android系统提供的View类,用来绘制显示粒子,在类ParitcleField中,进一步包括:定义变量mParticles是Android系统提供的集合ArrayList数据类型的变量,用来存放粒子,定义方法setParticles,用来给mParticles赋值,添加绘制的粒子集信息,重写onDraw方法,在控件上绘制粒子集;定义类ParticleSystem继承Android系统提供的Object类,用来控制粒子的生成和显示,在类ParticleSystem中,进一步包括:定义变量mParentView是Android系统提供的ViewGroup类型的变量,用来放置粒子控件,定义变量 mDrawingView是自定义粒子显示控件ParticleField类型的变量,用来绘制粒子集,定义变量mAnimator是Android系统提供的ValueAnimator类型的变量,用来提供动画的控制,定义变量mParticles是Android系统提供的ArrayList集合类型的变量,用来生成粒子集合,定义方法oneShot用来初始化自定义粒子控件,添加到当前窗体容器中并开启动画,定义方法startAnimator,用来控制开启动画。...

【技术特征摘要】
1.一种扩散粒子动画的实现方法,其特征在于,包括如下步骤:定义粒子数据类Particle,继承Android系统提供的Object对象,在粒子数据类Particle中,存放以下信息:粒子的位图、当前的坐标点、缩放比例、渐变值、旋转速度、移动速度、初始坐标值和动画时长,粒子数据类Particle中,进一步包括:定义变量mPaint是Android系统提供的画笔Paint类型的变量,用来绘制粒子,定义变量mRotation是Android系统提供的浮点数据类型的变量,用来记录粒子当前的旋转角度,定义方法update,根据当前时间用来计算粒子当前的x轴坐标和y轴坐标及粒子的旋转角度,定义方法draw,对粒子进行旋转、缩放、平移和渐变处理并绘制;定义类ParitcleField继承Android系统提供的View类,用来绘制显示粒子,在类ParitcleField中,进一步包括:定义变量mParticles是Android系统提供的集合ArrayList数据类型的变量,用来存放粒子,定义方法setParticles,用来给mParticles赋值,添加绘制的粒子集信息,重写onDraw方法,在控件上绘制粒子集;定义类ParticleSystem继承Android系统提供的Object类,用来控制粒子的生成和显示,在类ParticleSystem中,进一步包括:定义变量mParentView是Android系统提供的ViewGroup类型的变量,用来放置粒子控件,定义变量mDrawingView是自定义粒子显示控件ParticleField类型的变量,用来绘制粒子集,定义变量mAnimator是Android系统提供的ValueAnimator类型的变量,用来提供动画的控制,定义变量mParticles是Android系统提供的ArrayList集合类型的变量,用来生成粒子集合,定义方法oneShot用来初始化自定义粒子控件,添加到当前窗体容器中并开启动画,定义方法startAnimator,用来控制开启动画。2.如权利要求1所述的扩散粒子动画的实现方法,其特征在于:所述预设的区域为背景图片区域。3.如权利要求1所述的扩散粒子动画的实现方法,其特征在于:定义变量mImage是Android系统提供的Bitmap位图类型的变量,用来存放粒子的位图,定义变量mCurrentX和mCurrentY都是Android系统提供的浮点数据类型的变量,用来存放当前粒子的坐标,定义变量mScale,是Android系统...

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

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

1