ngl*_*ber 7 android android-jetpack android-camerax
我正在使用CameraX代码实验室,即使使用setTargetAspectRatio和setTargetResolution方法,预览中的纵横比也错误。
private fun startCamera() {
// Create configuration object for the viewfinder use case
val previewConfig = PreviewConfig.Builder().apply {
setTargetAspectRatio(Rational(1, 1))
setTargetResolution(Size(640, 640))
}.build()
...
Run Code Online (Sandbox Code Playgroud)
布局使用的是硬编码的大小,如代码实验室中所示。
<TextureView
android:id="@+id/view_finder"
android:layout_width="640px"
android:layout_height="640px"
...
Run Code Online (Sandbox Code Playgroud)
如果库具有CameraTextureView和属性android:scaleType(类似于的现有属性ImageView),可以将预览调整为预览大小,那就太好了。
小智 14
你尝试了吗?
val metrics = DisplayMetrics().also { viewFinder.display.getRealMetrics(it) }
val screenSize = Size(metrics.widthPixels, metrics.heightPixels)
val screenAspectRatio = Rational(metrics.widthPixels, metrics.heightPixels)
val viewFinderConfig = PreviewConfig.Builder().apply {
//...
setTargetResolution(screenSize)
setTargetAspectRatio(screenAspectRatio)
setTargetRotation(viewFinder.display.rotation)
}.build()
val preview = AutoFitPreviewBuilder.build(viewFinderConfig, viewFinder)
Run Code Online (Sandbox Code Playgroud)
您可以在此处找到AutoFitPreviewBuilder:https://gist.github.com/yevhenRoman/90681822adef43350844464be95d23f1
我建议您使用dp或constaraints设置TextureView的宽度和高度。让我知道它是否对您有用,谢谢!
| 归档时间: |
|
| 查看次数: |
1750 次 |
| 最近记录: |