protected void drawDimmedLayer(@NonNull Canvas canvas){
  canvas.save();
  if (mCircleDimmedLayer) {
    canvas.clipPath(mCircularPath,Region.Op.DIFFERENCE);
  }
 else {
    canvas.clipRect(mCropViewRect,Region.Op.DIFFERENCE);
  }
  canvas.drawColor(mDimmedColor);
  canvas.restore();
  if (mCircleDimmedLayer) {
    canvas.drawCircle(mCropViewRect.centerX(),mCropViewRect.centerY(),Math.min(mCropViewRect.width(),mCropViewRect.height()) / 2.f,mDimmedStrokePaint);
  }
}

protected void drawDimmedLayer ( @ NonNull Canvas canvas ) { canvas . save ( ) ; if ( mCircleDimmedLayer ) { canvas . clipPath ( mCircularPath , Region . Op . DIFFERENCE ) ; } else { canvas . clipRect ( mCropViewRect , Region . Op . DIFFERENCE ) ; } canvas . drawColor ( mDimmedColor ) ; canvas . restore ( ) ; if ( mCircleDimmedLayer ) { canvas . drawCircle ( mCropViewRect . centerX ( ) , mCropViewRect . centerY ( ) , Math . min ( mCropViewRect . width ( ) , mCropViewRect . height ( ) ) / 2.f , mDimmedStrokePaint ) ; } }
this method draws dimmed area around the crop bounds .
