forked from hardcoresushi/DroidFS
ImageViwer: retrieve screen size with Resources.getSystem().displayMetrics
This commit is contained in:
parent
822aba9481
commit
f546e64c34
@ -1,17 +1,14 @@
|
|||||||
package sushi.hardcore.droidfs.file_viewers
|
package sushi.hardcore.droidfs.file_viewers
|
||||||
|
|
||||||
import android.content.res.Configuration
|
import android.content.res.Configuration
|
||||||
|
import android.content.res.Resources
|
||||||
import android.graphics.Bitmap
|
import android.graphics.Bitmap
|
||||||
import android.graphics.BitmapFactory
|
import android.graphics.BitmapFactory
|
||||||
import android.graphics.Matrix
|
import android.graphics.Matrix
|
||||||
import android.graphics.Point
|
|
||||||
import android.graphics.drawable.Drawable
|
import android.graphics.drawable.Drawable
|
||||||
import android.os.Build
|
|
||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
import android.util.Size
|
|
||||||
import android.view.MotionEvent
|
import android.view.MotionEvent
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.WindowInsets
|
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import com.bumptech.glide.Glide
|
import com.bumptech.glide.Glide
|
||||||
@ -155,20 +152,6 @@ class ImageViewer: FileViewerActivity() {
|
|||||||
handler.postDelayed(hideUI, hideDelay)
|
handler.postDelayed(hideUI, hideDelay)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getDisplaySize(): Size {
|
|
||||||
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
|
||||||
val insets = windowManager.currentWindowMetrics.windowInsets.getInsetsIgnoringVisibility(
|
|
||||||
WindowInsets.Type.navigationBars() or WindowInsets.Type.displayCutout()
|
|
||||||
)
|
|
||||||
Size(insets.right + insets.left, insets.top + insets.bottom)
|
|
||||||
} else {
|
|
||||||
val point = Point()
|
|
||||||
@Suppress("Deprecation")
|
|
||||||
windowManager.defaultDisplay.getSize(point)
|
|
||||||
Size(point.x, point.y)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun loadImage(){
|
private fun loadImage(){
|
||||||
bitmap = null
|
bitmap = null
|
||||||
requestBuilder = null
|
requestBuilder = null
|
||||||
@ -180,16 +163,16 @@ class ImageViewer: FileViewerActivity() {
|
|||||||
if (bitmap == null) {
|
if (bitmap == null) {
|
||||||
true
|
true
|
||||||
} else {
|
} else {
|
||||||
val displaySize = getDisplaySize()
|
val displayMetrics = Resources.getSystem().displayMetrics
|
||||||
if (displaySize.width < bitmap!!.width || displaySize.height < bitmap!!.height) {
|
if (displayMetrics.widthPixels < bitmap!!.width || displayMetrics.heightPixels < bitmap!!.height) {
|
||||||
val newWidth: Int
|
val newWidth: Int
|
||||||
val newHeight: Int
|
val newHeight: Int
|
||||||
if (displaySize.width > displaySize.height) {
|
if (displayMetrics.widthPixels > displayMetrics.heightPixels) {
|
||||||
newWidth = displaySize.width
|
newWidth = displayMetrics.widthPixels
|
||||||
newHeight = bitmap!!.height*displaySize.width/bitmap!!.width
|
newHeight = bitmap!!.height*displayMetrics.widthPixels/bitmap!!.width
|
||||||
} else {
|
} else {
|
||||||
newHeight = displaySize.height
|
newHeight = displayMetrics.heightPixels
|
||||||
newWidth = bitmap!!.width*displaySize.height/bitmap!!.height
|
newWidth = bitmap!!.width*displayMetrics.heightPixels/bitmap!!.height
|
||||||
}
|
}
|
||||||
bitmap = Bitmap.createScaledBitmap(bitmap!!, newWidth, newHeight, false)
|
bitmap = Bitmap.createScaledBitmap(bitmap!!, newWidth, newHeight, false)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user