安卓属性动画与自定义控件实现圆球移动并实现颜色渐变


  本人也是刚开始研究属性动画,一些知识点也不是太懂,如果下面有说错的地方,大神们给一些指正的评论。


 今天做了一个demo,就是属性动画和自定义控件小圆球从左上角移动到右下角,并且伴随着颜色渐变。效果基本如下:

                                                                    



好了,下面说一下我的思路:


属性动画可以分为两种,这一种是用valueAnimator.ofObject方式做到的,这种方式需要自己定义模式,

我首先定义了两个类,一个为原点类,一个为颜色类,就是下面这样:


然后在自己定义的模式里面计算开始到结束,原点和颜色的差值,并且返回这两个类的实例







在自己定义的颜色模式中,用到一个新的API,这个方法的大意就是:自己定义颜色的argb,最后再转成int类型的color,然而这两个自己定义的模式,里面的一个算法,我给你们写成公式:值=开始值+分段*(结束值-开始值)

我这里面没有导源码,所以你们或许不懂这三个参数v,o,t1,这三个参数分别是:v=fraction,o=startValue

t1=endValue.


当计算好自己定义的模式之后,然后开始设计动画的效果




设置动画效果的代码可以自己封装到一个方法中比如:startAnim(),设置完动画效果之后之后就是去绘制控件的ondraw方法了,相信写到这,大家大概能明白一些,自己定义的实体类

,在重写模式的方法中不断被实例不断作为返回值被返回,就是为了在ondraw方法中调用,然后确定控件的位置和颜色:



还有一些定义的全局变量也给大家展示一下吧:

private Paint paint;
public static final float RADIUS = 50f;
private Point currentPoint;
private circleColor currentColor;

做到这里,这个demo基本就做完了,只需要在布局里面调用者个自定义控件,便会实现文章开头的效果了,快去试一下吧。



智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告