docs: public static void resizingBehaviorApply(ResizingBehavior behavior, RectF rect, RectF target, RectF result) {
      if (rect.equals(target) || target == null) {
        result.set(rect);
        return;
      }
  
      if (behavior == ResizingBehavior.Stretch) {
        result.set(target);
        return;
      }
  
      float xRatio = Math.abs(target.width() / rect.width());
      float yRatio = Math.abs(target.height() / rect.height());
      float scale = 0f;
  
      switch (behavior) {
        case AspectFit: {
          scale = Math.min(xRatio, yRatio);
          break;
        }
        case AspectFill: {
          scale = Math.max(xRatio, yRatio);
          break;
        }
        case Center: {
          scale = 1f;
          break;
        }
        default:
          break;
      }
  
      float newWidth = Math.abs(rect.width() * scale);
      float newHeight = Math.abs(rect.height() * scale);
      result.set(target.centerX() - newWidth / 2,
        target.centerY() - newHeight / 2,
        target.centerX() + newWidth / 2,
        target.centerY() + newHeight / 2);
    }