Android move object along a path

后端 未结 5 1671
天涯浪人
天涯浪人 2020-12-14 18:33

I ave created a path a circle and displayed both of them on screen as follows:

public void onDraw(Canvas canvas){

        Path sPath = new Path();
        s         


        
5条回答
  •  有刺的猬
    2020-12-14 19:16

    Here are the animators I use:

    Purpose: Move View "view" along Path "path"

    v21+:

    ValueAnimator pathAnimator = ObjectAnimator.ofFloat(view, "x", "y", path)
    

    v11+:

    ValueAnimator pathAnimator = ValueAnimator.ofFloat(0.0f, 1.0f);
    
    pathAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
    float[] point = new float[2];
    
    @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            float val = animation.getAnimatedFraction();
            PathMeasure pathMeasure = new PathMeasure(path, true);
            pathMeasure.getPosTan(pathMeasure.getLength() * val, point, null);
            view.setX(point[0]);
            view.setY(point[1]);
        }
    });
    

提交回复
热议问题