private RectF getDisplayRect(Matrix matrix) {
   DraweeView<GenericDraweeHierarchy> draweeView = getDraweeView();
   if (draweeView == null || (mImageInfoWidth == -1 && mImageInfoHeight == -1)) {
     return null;
   }
   mDisplayRect.set(0.0F, 0.0F, mImageInfoWidth, mImageInfoHeight);
   draweeView.getHierarchy().getActualImageBounds(mDisplayRect);
   matrix.mapRect(mDisplayRect);
   return mDisplayRect;
 }
 public Attacher(DraweeView<GenericDraweeHierarchy> draweeView) {
   mDraweeView = new WeakReference<DraweeView<GenericDraweeHierarchy>>(draweeView);
   draweeView.getHierarchy().setActualImageScaleType(ScalingUtils.ScaleType.FIT_CENTER);
   draweeView.setOnTouchListener(this);
   mScaleDragDetector = new ScaleDragDetector(draweeView.getContext(), this);
   mGestureDetector =
       new GestureDetectorCompat(
           draweeView.getContext(),
           new GestureDetector.SimpleOnGestureListener() {
             @Override
             public void onLongPress(MotionEvent e) {
               super.onLongPress(e);
               if (null != mLongClickListener) {
                 mLongClickListener.onLongClick(getDraweeView());
               }
             }
           });
   mGestureDetector.setOnDoubleTapListener(new DefaultOnDoubleTapListener(this));
 }