Skip to content

Commit d80c495

Browse files
fix(camera): 修复横屏状态下预览画面无法正确显示的问题- 优化了获取屏幕尺寸的方法,提高了代码的健壮性和兼容性
- 使用 Display 和 DisplayMetrics 两种方式获取屏幕尺寸,确保在不同设备上都能正常工作
1 parent 10616ec commit d80c495

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

app/src/main/java/com/pengxh/kt/lib/fragments/extensions/ImageExtensionFragment.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.pengxh.kt.lib.fragments.extensions
22

33
import android.annotation.SuppressLint
4+
import android.content.res.Resources
45
import android.graphics.Bitmap
56
import android.graphics.ImageFormat
67
import android.graphics.RectF
@@ -9,6 +10,7 @@ import android.os.Build
910
import android.os.Bundle
1011
import android.util.DisplayMetrics
1112
import android.util.Log
13+
import android.view.Display
1214
import android.view.LayoutInflater
1315
import android.view.Surface
1416
import android.view.ViewGroup
@@ -90,7 +92,12 @@ class ImageExtensionFragment : KotlinBaseFragment<FragmentExtensionImageBinding>
9092
aspectRatio(metrics.width(), metrics.height())
9193
} else {
9294
val outMetrics = DisplayMetrics()
93-
requireActivity().windowManager.defaultDisplay.getMetrics(outMetrics)
95+
val display = requireActivity().windowManager?.defaultDisplay ?: Resources.getSystem().displayMetrics
96+
if (display is Display) {
97+
display.getMetrics(outMetrics)
98+
} else if (display is DisplayMetrics) {
99+
outMetrics.setTo(display)
100+
}
94101
aspectRatio(outMetrics.widthPixels, outMetrics.heightPixels)
95102
}
96103

0 commit comments

Comments
 (0)