code: @NonNull
      public static <T> ObjectAnimator ofFloat(@Nullable T target,
                                               @NonNull Property<T, Float> xProperty,
                                               @NonNull Property<T, Float> yProperty,
                                               @NonNull Path path) {
          if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
              return ObjectAnimatorCompatLollipop.ofFloat(target, xProperty, yProperty, path);
          } else {
              return ObjectAnimatorCompatBase.ofFloat(target, xProperty, yProperty, path);
          }
      }
docs: Constructs and returns an ObjectAnimator that animates coordinates along a {@code Path} using
  two properties. A {@code Path} animation moves in two dimensions, animating coordinates
  {@code (x, y)} together to follow the line. In this variation, the coordinates are floats
  that are set to separate properties, {@code xProperty} and {@code yProperty}.
  
  @param target The object whose properties are to be animated.
  @param xProperty The property for the x coordinate being animated.
  @param yProperty The property for the y coordinate being animated.
  @param path The {@code Path} to animate values along.
  @return An ObjectAnimator object that is set up to animate along {@code path}.