在自定义android摄像头应用程序中拍照时,如何只允许特定的比例?

ctzwtxfj  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(340)

在我的应用程序中,用户需要以1:1的比例拍照,并且必须是后摄像头。
那么,有没有办法将比例设置为1:1,并禁用切换到前置摄像头?
以下是我代码的一部分:

private void dispatchTakePictureIntent() {

        ContentValues cValues = new ContentValues();
        cValues.put(MediaStore.Images.Media.DISPLAY_NAME, "Photo");
        cValues.put(MediaStore.Images.Media.DESCRIPTION, "Camera");
        imageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, cValues);

        Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);

        try {
            startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
        }
        catch (ActivityNotFoundException e) {
            // display error state to the user
        }
    }

谢谢你的回答。

aiazj4mn

aiazj4mn1#

您可以使用“裁剪”选项进行裁剪,以便获得所需的比例

`private fun pickImage() {
    val intent = Intent(Intent.ACTION_PICK)
    //to crop the image
    intent.type = "image/jpg"
    intent.putExtra("crop", "true");
    intent.putExtra("aspectX", 10);
    intent.putExtra("aspectY", 10);
    intent.putExtra("outputX", 396);
    intent.putExtra("outputY", 396);
    intent.putExtra("noFaceDetection", false);
    intent.putExtra("return-data", true);
    startActivityForResult(intent, imgcode)
}`

活动结果可能是
`重写onactivityresult(请求代码:int,结果代码:int,数据:intent?{super.onactivityresult(请求代码,结果代码,数据)//检查请求代码

if (requestCode == 1111 && resultCode == Activity.RESULT_OK) {
        //converting to bitmap
        val bmp: Bitmap? = data?.getParcelableExtra<Bitmap>("data")
        img.setImageBitmap(bmp)`

相关问题