diff --git a/library/src/main/java/com/bm/library/PhotoView.java b/library/src/main/java/com/bm/library/PhotoView.java index c59687b..f26afe6 100644 --- a/library/src/main/java/com/bm/library/PhotoView.java +++ b/library/src/main/java/com/bm/library/PhotoView.java @@ -397,14 +397,18 @@ private void initCenterInside() { } private void initFitCenter() { - if (mImgRect.width() < mWidgetRect.width()) { - mScale = mWidgetRect.width() / mImgRect.width(); - - mAnimaMatrix.postScale(mScale, mScale, mScreenCenter.x, mScreenCenter.y); - - executeTranslate(); - resetBase(); + if (mImgRect.width() >= mImgRect.height()) { + if (mImgRect.width() < mWidgetRect.width()) { + mScale = mWidgetRect.width() / mImgRect.width(); + } + } else { + if (mImgRect.height() < mWidgetRect.height()) { + mScale = mWidgetRect.height() / mImgRect.height(); + } } + mAnimaMatrix.postScale(mScale, mScale, mScreenCenter.x, mScreenCenter.y); + executeTranslate(); + resetBase(); } private void initFitStart() {