拍摄的照片大于cameraview中的预览

时间:2019-07-04 14:49:53

标签: android camera camera-view

在这里使用Samsung J1设备时遇到问题。 但是所拍摄的图像比预览的要大。

这是我得到的预览: enter image description here

这是最终的位图结果:

enter image description here

我正在使用以下属性调用相机视图:

<com.otaliastudios.cameraview.CameraView
android:id="@+id/camera"
app:cameraGesturePinch="zoom"
app:cameraFlash="auto"
app:cameraAutoFocusResetDelay="0"
app:cameraGestureTap="focusWithMarker"
android:keepScreenOn="true"
app:cameraPreview="glSurface"
app:cameraPictureSizeSmallest="true"
android:adjustViewBounds="true"
app:cameraGestureScrollHorizontal="exposureCorrection"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

我已经尝试将cameraPictureSizeAspectRatio与4:3一起使用,但没有成功。

我做错了吗?

1 个答案:

答案 0 :(得分:0)

我有同样的问题。 从cameraview保存图像后(我使用camerakit lib),通过将其转换为imageview中的位图来显示文件。

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    cameraKitView = findViewById(R.id.camera)

    val captureButton = findViewById<View>(R.id.button_capture) as Button
    val imageView = findViewById<ImageView>(R.id.myImageView)

    captureButton.setOnClickListener {
        cameraKitView!!.captureImage { _, capturedImage ->
            val savedPhoto = getOutputMediaFile()
            try {
                val outputStream = FileOutputStream(savedPhoto!!.path)
                outputStream.write(capturedImage)
                outputStream.close()
                val myBitmap = BitmapFactory.decodeFile(savedPhoto.getAbsolutePath())
                imageView.setImageBitmap(myBitmap)
            } catch (e: java.io.IOException) {
                e.printStackTrace()
            }
        }
    }
}

这是我的布局:

<android.support.constraint.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/relativeLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<com.camerakit.CameraKitView
    android:id="@+id/camera"
    android:layout_width="0dp"
    android:layout_height="0dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    android:adjustViewBounds="true"/>

<Button
    android:id="@+id/button_capture"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="8dp"
    android:text="@string/save"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent" />


<ImageView
    android:id="@+id/myImageView"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:alpha="0.5"
    android:adjustViewBounds="true"
    android:background="@android:color/holo_blue_bright"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    android:contentDescription="@string/app_name" />

</android.support.constraint.ConstraintLayout>

但是当显示图像并想要拍摄另一张图像时,cameraview的缩放比例不如imageview

已解决: 只需将scaleType更改为CentreCrop即可。就是这样