Android 自定义View 跳动的水果和文字

677 查看

开头

这是自定义View和动画的第二篇,第一篇是Android drawPath 实现QQ拖拽泡泡,主要介绍了drawPath 绘制二次贝塞尔曲线的过程。(idea来自同事的新需求!)

话不多说,还是先上效果图吧!(今天手贱升级了Genymotion,就成这个傻逼样子了!)

效果图

全局配置

根据效果图,再来说说实现的基本过程。上面的Bitmap 的动画就是使用了属性动画ObjectAnimator,而下面的那个跳动的文字,主要就是使用了drawTextOnPath的方法,其实也是基于第一篇讲解的drawPath来实现的!所以总的来说就是属性动画+drawTextViewPath

动画介绍

这里一共定义了三个属性动画:

动画这里还要随便提一嘴动画插补器Interpolator

详细的请看这个兄弟的博客,有配图,很形象直观的!

这里的话,图片下落肯定是一个重力加速的过程 使用了LinearInterpolator,而上升的话,肯定是一个减速的过程,使用了DecelerateInterpolator,而文字的跳动,那就非BounceInterpolator 莫属了!

到这里,动画的基础讲解暂告一段落。

drawTextOnPath 方法使用介绍

Draw the text, with origin at (x,y), using the specified paint, along the specified path. The paint’s Align setting determins where along the path to start the text.

其实这个方法就是drawText() 的方法的基础上,沿着指定的路径来绘制对应的文字!

2244299-2b1fb21a2ce54f66

drawTextOnPath热身

对应的代码:

啦啦啦,通过热身,可以清楚的看到,要想实现跳动的文字其实很简单啦,就是动态的改变Path的路径,然后在这个路径上不断绘制出文字就好了!原理说着都是枯燥的,直接撸上代码!

OffsetAnimator && OffsetProperty

如上面的介绍,这个Animator就是来控制Path的绘制的。

这里使用了自定义的属性OffsetProperty,这个是什么鬼呢?其实就是一个自己定义的属性啦!