动画不适用于我的Android应用程序

时间:2015-06-18 21:29:52

标签: android android-animation objectanimator

嘿,我正在尝试复制一个类似于下面的gif但有更薄圆​​圈的动画:

但是我的动画不动,它只是静态的圆圈,这是我正在使用的方法:

private void circleAnimation3(final Marker marker){
    final Circle circle2 = mMap.addCircle(new CircleOptions()
            .center(new LatLng(marker.getPosition().latitude,marker.getPosition().longitude))
            .strokeColor(Color.CYAN).radius(1000));

    animatorSet = new AnimatorSet();
    animatorSet.setInterpolator(new AccelerateDecelerateInterpolator());
    animatorList = new ArrayList<Animator>();

    for(int i=0;i<rippleAmount;i++) {
        final ValueAnimator scaleXAnimator = ValueAnimator.ofFloat(1.0f);
        scaleXAnimator.setRepeatCount(ValueAnimator.INFINITE);
        scaleXAnimator.setRepeatMode(ValueAnimator.RESTART);
        scaleXAnimator.setStartDelay(i * (3000/6));
        scaleXAnimator.setDuration(3000);
        scaleXAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator valueAnimator) {
                float animatedFraction = valueAnimator.getAnimatedFraction();
                Log.e("", "" + animatedFraction);
                circle2.setRadius(animatedFraction * 100);
            }
        });
        animatorList.add(scaleXAnimator);

        final ValueAnimator scaleYAnimator = ValueAnimator.ofFloat(1.0f);
        scaleYAnimator.setRepeatCount(ValueAnimator.INFINITE);
        scaleYAnimator.setRepeatMode(ValueAnimator.RESTART);
        scaleYAnimator.setStartDelay(i * (3000/6));
        scaleYAnimator.setDuration(3000);
        scaleYAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator valueAnimator) {
                float animatedFraction = valueAnimator.getAnimatedFraction();
                Log.e("", "" + animatedFraction);
                circle2.setRadius(animatedFraction * 100);
            }
        });
        animatorList.add(scaleYAnimator);

        final ValueAnimator alphaAnimator = ValueAnimator.ofFloat(1.0f,0f);
        alphaAnimator.setRepeatCount(ValueAnimator.INFINITE);
        alphaAnimator.setRepeatMode(ValueAnimator.RESTART);
        alphaAnimator.setStartDelay(i * (3000/6));
        alphaAnimator.setDuration(3000);
        alphaAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator valueAnimator) {
                float animatedFraction = valueAnimator.getAnimatedFraction();
                Log.e("", "" + animatedFraction);
                circle2.setRadius(animatedFraction * 100);
            }
        });
        animatorList.add(alphaAnimator);
    }

    animatorSet.playTogether(animatorList);
    animatorSet.start();
}

我不确定为什么它不动:(

0 个答案:

没有答案
相关问题