question: private void drawGuidelines ( Canvas canvas ) { if ( mGuidelinePaint != null ) { float sw = mBorderPaint != null ? mBorderPaint . getStrokeWidth ( ) : 0 ; RectF rect = mCropWindowHandler . getRect ( ) ; rect . inset ( sw , sw ) ; float oneThirdCropWidth = rect . width ( ) / 3 ; float oneThirdCropHeight = rect . height ( ) / 3 ; if ( mCropShape == CropImageView . CropShape . OVAL ) { float w = rect . width ( ) / 2 - sw ; float h = rect . height ( ) / 2 - sw ; float x1 = rect . left + oneThirdCropWidth ; float x2 = rect . right - oneThirdCropWidth ; float yv = ( float ) ( h * Math . sin ( Math . acos ( ( w - oneThirdCropWidth ) / w ) ) ) ; canvas . drawLine ( x1 , rect . top + h - yv , x1 , rect . bottom - h + yv , mGuidelinePaint ) ; canvas . drawLine ( x2 , rect . top + h - yv , x2 , rect . bottom - h + yv , mGuidelinePaint ) ; float y1 = rect . top + oneThirdCropHeight ; float y2 = rect . bottom - oneThirdCropHeight ; float xv = ( float ) ( w * Math . cos ( Math . asin ( ( h - oneThirdCropHeight ) / h ) ) ) ; canvas . drawLine ( rect . left + w - xv , y1 , rect . right - w + xv , y1 , mGuidelinePaint ) ; canvas . drawLine ( rect . left + w - xv , y2 , rect . right - w + xv , y2 , mGuidelinePaint ) ; } else { float x1 = rect . left + oneThirdCropWidth ; float x2 = rect . right - oneThirdCropWidth ; canvas . drawLine ( x1 , rect . top , x1 , rect . bottom , mGuidelinePaint ) ; canvas . drawLine ( x2 , rect . top , x2 , rect . bottom , mGuidelinePaint ) ; float y1 = rect . top + oneThirdCropHeight ; float y2 = rect . bottom - oneThirdCropHeight ; canvas . drawLine ( rect . left , y1 , rect . right , y1 , mGuidelinePaint ) ; canvas . drawLine ( rect . left , y2 , rect . right , y2 , mGuidelinePaint ) ; } } }
target:  Draw 2 veritcal and 2 horizontal guidelines inside the cropping area to split it into 9 equal parts.