private void setState(State state) {
        this.state = state;
    }
After rotating, the matrix needs to be translated. This function finds the area of image
which was previously centered and adjusts translations so that is again the center, post-rotation.

@param axis          Matrix.MTRANS_X or Matrix.MTRANS_Y
@param trans         the value of trans in that axis before the rotation
@param prevImageSize the width/height of the image before the rotation
@param imageSize     width/height of the image after rotation
@param prevViewSize  width/height of view before rotation
@param viewSize      width/height of view after rotation
@param drawableSize  width/height of drawable
app/src/main/java/home/smart/fly/animations/customview/gallery/TouchImageView.java