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

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


 今天做了一个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基本就做完了,只需要在布局里面调用者个自定义控件,便会实现文章开头的效果了,快去试一下吧。



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值