ValueAnimator如何在已经运行的情况下停止执行任何新动画,直到其像队列或水or般结束

伙计们,我正在尝试进行循环动画,但是我希望这辆车在开始动画时停止进行任何新动画,并在完成时不像队列或其他帮助那样在开始时进行新动画? / p>

我的代码

public synchronized ValueAnimator moveVechile(final LatLng finalPosition,final LatLng startPosition) {

        final ValueAnimator valueAnimator = ValueAnimator.ofFloat((float) 0.01,(float) 1.5);

            valueAnimator.setInterpolator(new LinearInterpolator());
            valueAnimator.setDuration(2600);
            valueAnimator.addUpdateListener(new ValueAnimator.AnimatorupdateListener() {
                @Override
                public void onAnimationUpdate(ValueAnimator valueAnimator) {
                    float t = Float.parseFloat(valueAnimator.getanimatedValue().toString());

                    LatLng currentPosition = new LatLng(
                            startPosition.latitude * (1 - t) + (finalPosition.latitude) * t,startPosition.longitude * (1 - t) + (finalPosition.longitude) * t);
//                markerDriver.setanchor(0.5f,0.5f);
//                markerDriver.setRotation(markerDriver.getRotation());
                    markerDriver.setPosition(currentPosition);

                }
            });
            valueAnimator.addListener(new Animator.AnimatorListener() {

                @Override
                public void onAnimationStart(Animator animation) {
                    Toast.makeText(activity,"Start Animate: "+animation.isStarted(),Toast.LENGTH_SHORT).show();
                }

                @Override
                public void onAnimationRepeat(Animator animation) {

                }

                @Override
                public void onAnimationEnd(Animator animation) {
                    Toast.makeText(activity,"End Animate: "+animation.isRunning(),Toast.LENGTH_SHORT).show();
                }

                @Override
                public void onAnimationCancel(Animator animation) {
                    // ...
                }
            });


            return valueAnimator;
    }
woshiwuchao1 回答:ValueAnimator如何在已经运行的情况下停止执行任何新动画,直到其像队列或水or般结束

我制作了一个HashMap

    public final static HashMap<String,String> VhecileCalled=new HashMap<String,String>();

然后我把这个

@Override
            public void onAnimationStart(Animator animation) {
                VhecileCalled.put("started","2");
                Toast.makeText(activity,"Start Animate: "+animation.isStarted(),Toast.LENGTH_SHORT).show();

            }

            @Override
            public void onAnimationEnd(Animator animation) {
                VhecileCalled.put("started","1");
                Toast.makeText(activity,"End Animate: "+animation.isRunning(),Toast.LENGTH_SHORT).show();
            }

然后onCreate或CreateView 我在调用该函数时不会崩溃该应用程序

                    VhecileCalled.put("started","1");

然后,当我调用执行动画的函数时

    if (VhecileCalled.get("started").equals("1")){
                rotateMarker(markerDriver,markerDriver.getPosition(),newlatlng);
                animatorSet.playTogether(
//                    rotateMarker(Float.isNaN(bearingangle) ? -1 : bearingangle,markerDriver.getRotation()),moveVechile(newlatlng,markerDriver.getPosition())
                );
            }else {
                Toast.makeText(activity,"Animation already called",Toast.LENGTH_SHORT).show();
            }
本文链接:https://www.f2er.com/3130880.html

大家都在问