Android仿视频加载旋转小球动画效果的实例代码-创新互联

先上个效果图,以免大家跑错地了。   

专注于为中小企业提供成都做网站、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业淇县免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

嗯,除了只能录三秒,其他没啥问题。   


下面分析一下怎么实现上面这个效果。   


理性分析后我们可以看到是几个小球绕着一个圆进行运动,那这里面的重点我们看看什么。   


绘制五个球,没什么难度,让球绕圆进行运动,这个好像我们没有见到是怎么去实现了,那下就说这个。   


从本质上看,球绕圆运动,其实我们可以看作是一个物体绕指定的路劲运动,那我们就有下面几个东西需要说一下:


1:Path
2:ValueAnimator
3:PathMeasure  


前两个大家应该都见过,一个是路径,就是可以自己绘制路线的一个工具,一个是动画,用来指定物体运动的工具,那第三个是一个关于测量路径的类。   


下面说说PathMeasure的用法。   


首先是初始化:


pathMeasure = new PathMeasure(path, false);  


两个参数第一个,第一个就是我们需要用到的路径,第二个参数意思就是这个以路径头尾是否相连来计算结果,通常我们就写false就行,不会有问题。   


然后是用法:

private float[] mCurrentPositionOne = new float[2];
float value = (Float) 
animation.getAnimatedValue();
pathMeasure.getPosTan(value, mCurrentPositionOne, null);
  我们可以看见把一个二维数组放到了getPosTan这个方法里面,然后还有一个animation,这里的animation来自哪里呢?来自这里:valueAnimatorOne.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
  @Override
  public void onAnimationUpdate(ValueAnimator animation) {
    // 获取当前点坐标封装到mCurrentPosition
    float value = (Float) animation.getAnimatedValue();
    pathMeasure.getPosTan(value, mCurrentPositionOne, null);
    postInvalidate();
  }
});

分享标题:Android仿视频加载旋转小球动画效果的实例代码-创新互联
分享网址:http://myzitong.com/article/sppje.html