@Override
  protected void onDraw(Canvas canvas) {
    int saveCount = canvas.save();
    canvas.concat(mZoomableController.getTransform());
    try {
      super.onDraw(canvas);
    } catch (Exception e) {
      DraweeController controller = getController();
      if (controller != null && controller instanceof AbstractDraweeController) {
        Object callerContext = ((AbstractDraweeController) controller).getCallerContext();
        if (callerContext != null) {
          throw new RuntimeException(
              String.format("Exception in onDraw, callerContext=%s", callerContext.toString()), e);
        }
      }
      throw e;
    }
    canvas.restoreToCount(saveCount);
  }
Sets the controllers for the normal and huge image.

<p>The huge image controller is used after the image gets scaled above a certain threshold.

<p>IMPORTANT: in order to avoid a flicker when switching to the huge image, the huge image
controller should have the normal-image-uri set as its low-res-uri.

@param controller controller to be initially used
@param hugeImageController controller to be used after the client starts zooming-in
samples/zoomable/src/main/java/com/facebook/samples/zoomable/ZoomableDraweeView.java