mirror of
https://github.com/FossifyOrg/Gallery.git
synced 2024-11-27 06:57:59 +01:00
improve some double-tap zoom ratios
This commit is contained in:
parent
73441a021a
commit
27f00cfe3c
3 changed files with 11 additions and 2 deletions
|
@ -74,6 +74,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
|
||||||
companion object {
|
companion object {
|
||||||
var screenWidth = 0
|
var screenWidth = 0
|
||||||
var screenHeight = 0
|
var screenHeight = 0
|
||||||
|
var wasDecodedByGlide = false
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
|
|
|
@ -221,6 +221,7 @@ class PhotoFragment : ViewPagerFragment() {
|
||||||
|
|
||||||
private fun addZoomableView() {
|
private fun addZoomableView() {
|
||||||
if ((medium.isImage()) && isFragmentVisible && view.subsampling_view.isGone()) {
|
if ((medium.isImage()) && isFragmentVisible && view.subsampling_view.isGone()) {
|
||||||
|
ViewPagerActivity.wasDecodedByGlide = false
|
||||||
view.subsampling_view.apply {
|
view.subsampling_view.apply {
|
||||||
setBitmapDecoderClass(GlideDecoder::class.java)
|
setBitmapDecoderClass(GlideDecoder::class.java)
|
||||||
maxScale = 10f
|
maxScale = 10f
|
||||||
|
@ -233,7 +234,8 @@ class PhotoFragment : ViewPagerFragment() {
|
||||||
|
|
||||||
override fun onReady() {
|
override fun onReady() {
|
||||||
background = ColorDrawable(if (context.config.darkBackground) Color.BLACK else context.config.backgroundColor)
|
background = ColorDrawable(if (context.config.darkBackground) Color.BLACK else context.config.backgroundColor)
|
||||||
setDoubleTapZoomScale(getDoubleTapZoomScale())
|
val zoomScale = if (ViewPagerActivity.wasDecodedByGlide) 1f else getDoubleTapZoomScale()
|
||||||
|
setDoubleTapZoomScale(zoomScale)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onTileLoadError(e: Exception?) {
|
override fun onTileLoadError(e: Exception?) {
|
||||||
|
@ -264,13 +266,18 @@ class PhotoFragment : ViewPagerFragment() {
|
||||||
val height = bitmapOptions.outHeight
|
val height = bitmapOptions.outHeight
|
||||||
val bitmapAspectRatio = height / (width).toFloat()
|
val bitmapAspectRatio = height / (width).toFloat()
|
||||||
|
|
||||||
if (context == null)
|
if (context == null) {
|
||||||
return 2f
|
return 2f
|
||||||
|
}
|
||||||
|
|
||||||
return if (context!!.portrait && bitmapAspectRatio <= 1f) {
|
return if (context!!.portrait && bitmapAspectRatio <= 1f) {
|
||||||
ViewPagerActivity.screenHeight / height.toFloat()
|
ViewPagerActivity.screenHeight / height.toFloat()
|
||||||
|
} else if (context!!.portrait && bitmapAspectRatio > 1f) {
|
||||||
|
ViewPagerActivity.screenHeight / width.toFloat()
|
||||||
} else if (!context!!.portrait && bitmapAspectRatio >= 1f) {
|
} else if (!context!!.portrait && bitmapAspectRatio >= 1f) {
|
||||||
ViewPagerActivity.screenWidth / width.toFloat()
|
ViewPagerActivity.screenWidth / width.toFloat()
|
||||||
|
} else if (!context!!.portrait && bitmapAspectRatio < 1f) {
|
||||||
|
ViewPagerActivity.screenWidth / height.toFloat()
|
||||||
} else {
|
} else {
|
||||||
2f
|
2f
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,7 @@ class GlideDecoder : ImageDecoder {
|
||||||
val targetWidth = if (ViewPagerActivity.screenWidth == 0) Target.SIZE_ORIGINAL else ViewPagerActivity.screenWidth
|
val targetWidth = if (ViewPagerActivity.screenWidth == 0) Target.SIZE_ORIGINAL else ViewPagerActivity.screenWidth
|
||||||
val targetHeight = if (ViewPagerActivity.screenHeight == 0) Target.SIZE_ORIGINAL else ViewPagerActivity.screenHeight
|
val targetHeight = if (ViewPagerActivity.screenHeight == 0) Target.SIZE_ORIGINAL else ViewPagerActivity.screenHeight
|
||||||
|
|
||||||
|
ViewPagerActivity.wasDecodedByGlide = true
|
||||||
val options = RequestOptions()
|
val options = RequestOptions()
|
||||||
.signature(uri.path.getFileSignature())
|
.signature(uri.path.getFileSignature())
|
||||||
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
|
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
|
||||||
|
|
Loading…
Reference in a new issue