Я использую библиотеку CameraX в своем проекте, элемент управления view_finder отображает изображение с камеры мобильного телефона.
Я надеюсь увеличить изображение в 2 или 3 раза, я думаю Код A может это сделать.
Интересно, правильный ли алгоритм Код A . Существует ли простой алгоритм для увеличения 4x, 5x, ... 10x?
Кстати, preview = AutoFitPreviewBuilder.build(viewFinderConfig, viewFinder)
, вы можете увидеть простой код .
Код A
fun zoom2(){
val left1=viewFinder.width/3
val right1=viewFinder.width/3*2
val top1=viewFinder.height/3
val bottom1=viewFinder.height/3*2
val my = Rect(left1, top1, right1, bottom1)
preview?.zoom(my)
}
fun zoom3(){
val left2=viewFinder.width/6*2.5
val right2=viewFinder.width/6*3.5
val top2=viewFinder.height/6*2.5
val bottom2=viewFinder.height/6*3.5
val my = Rect(left2.toInt(), top2.toInt(), right2.toInt(), bottom2.toInt())
preview?.zoom(my)
}
Макет
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/camera_container"
android:background="@android:color/black"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextureView
android:id="@+id/view_finder"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.constraintlayout.widget.ConstraintLayout>