Merge branch 'hotfix-v5.6.0-470_imageviewer' into 'release'
修复游戏详情打开大图动画异常 See merge request halo/android/assistant-android!216
This commit is contained in:
@ -16,7 +16,6 @@ import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import android.text.TextUtils
|
||||
import android.util.Base64
|
||||
import android.util.DisplayMetrics
|
||||
import android.util.SparseArray
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
@ -58,9 +57,11 @@ import com.github.piasy.biv.view.BigImageView
|
||||
import com.github.piasy.biv.view.FrescoImageViewFactory
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.schedulers.Schedulers
|
||||
import java.io.*
|
||||
import java.io.BufferedOutputStream
|
||||
import java.io.File
|
||||
import java.io.FileOutputStream
|
||||
import java.util.*
|
||||
import kotlin.collections.ArrayList
|
||||
import kotlin.math.abs
|
||||
import kotlin.math.roundToInt
|
||||
|
||||
/**
|
||||
@ -172,9 +173,7 @@ class ImageViewerActivity : BaseActivity(), OnPageChangeListener {
|
||||
mIndicatorTv.text = String.format("%d/%d", mInitialPosition + 1, mUrlList!!.size)
|
||||
|
||||
// init slide
|
||||
val outMetrics = DisplayMetrics()
|
||||
windowManager?.defaultDisplay?.getMetrics(outMetrics)
|
||||
val widthPixels = outMetrics.widthPixels
|
||||
val widthPixels = DisplayUtils.getScreenWidth()
|
||||
mLimitWidth = if (NetworkUtils.isWifiOr4GConnected(this)) {
|
||||
widthPixels * 2
|
||||
} else {
|
||||
@ -417,8 +416,6 @@ class ImageViewerActivity : BaseActivity(), OnPageChangeListener {
|
||||
}
|
||||
|
||||
private fun finishWithAnimation(fadeOnly: Boolean) {
|
||||
updateOriginPosition(mViewPager.currentItem)
|
||||
|
||||
val animatorSet = AnimatorSet()
|
||||
|
||||
val translateXAnimator = ValueAnimator.ofFloat(0F, mTranslationX).apply {
|
||||
@ -469,7 +466,7 @@ class ImageViewerActivity : BaseActivity(), OnPageChangeListener {
|
||||
}
|
||||
}
|
||||
|
||||
private fun shouldResize() = !(mImageRatio == mViewRatio || scaleWithoutResize())
|
||||
private fun shouldResize() = !(abs(mImageRatio - mViewRatio) <= 0.1F || scaleWithoutResize())
|
||||
|
||||
private fun justChangeBoundsAndTransform() = mImageRatio < mViewRatio && mIsFromImageContainerView && adapter?.count == 1
|
||||
|
||||
@ -608,8 +605,6 @@ class ImageViewerActivity : BaseActivity(), OnPageChangeListener {
|
||||
}
|
||||
|
||||
private fun performExitAnimation(view: DraggableBigImageView, scale: Float, fadeOnly: Boolean) {
|
||||
updateOriginPosition(mViewPager.currentItem)
|
||||
|
||||
val finalScale = mOriginWidth / mTargetWidth
|
||||
val finalTranslationX = mOriginLeft - (1 - finalScale) * mTargetWidth / 2
|
||||
val finalTranslationY = mOriginTop - ((1 - finalScale) * mTargetHeight + (mTargetHeight * finalScale - mOriginHeight)) / 2
|
||||
@ -726,7 +721,7 @@ class ImageViewerActivity : BaseActivity(), OnPageChangeListener {
|
||||
return ObjectAnimator.ofFloat(startHeight.toFloat(), endHeight.toFloat()).apply {
|
||||
addUpdateListener {
|
||||
sceneRoot.findViewById<BigImageView>(R.id.viewimage_iv_show)?.ssiv?.run {
|
||||
if (scaleWithoutResize()) {
|
||||
if (abs(mImageRatio - mViewRatio) > 0.1F && scaleWithoutResize()) {
|
||||
maxScale = scale
|
||||
setMinimumScaleType(SubsamplingScaleImageView.SCALE_TYPE_CENTER_CROP)
|
||||
}
|
||||
@ -768,6 +763,7 @@ class ImageViewerActivity : BaseActivity(), OnPageChangeListener {
|
||||
}
|
||||
imageView.setDragListener(object : DraggableBigImageView.DragListener {
|
||||
override fun onRelease(draggableBigImageView: DraggableBigImageView, scale: Float) {
|
||||
updateOriginPosition(mViewPager.currentItem)
|
||||
performExitAnimation(draggableBigImageView, scale, isFadeOnly())
|
||||
}
|
||||
|
||||
@ -812,7 +808,7 @@ class ImageViewerActivity : BaseActivity(), OnPageChangeListener {
|
||||
// }
|
||||
// })
|
||||
ssiv.setOnClickListener {
|
||||
finishWithAnimation(isFadeOnly())
|
||||
onBackPressed()
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -875,6 +871,7 @@ class ImageViewerActivity : BaseActivity(), OnPageChangeListener {
|
||||
private fun isFadeOnly() = mViewPager.currentItem >= mOriginLeftList?.size ?: 0 || mOriginLeft == 0 || mOriginTop == 0
|
||||
|
||||
override fun onBackPressed() {
|
||||
updateOriginPosition(mViewPager.currentItem)
|
||||
finishWithAnimation(isFadeOnly())
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user