【问题标题】:Issue taking photo拍照问题
【发布时间】:2018-07-10 17:57:18
【问题描述】:

我必须实现一个允许用户拍照的功能,我需要强制屏幕方向为纵向。

更多的安卓设备,尤其是平板电脑,配备了安装在外壳顶部的后置摄像头(纵向模式),而其他设备则安装在平板电脑的侧面(横向模式)。

例如:

  • 华为M2-A01L(侧面摄像头)

  • 三星 Galaxy Tab A6(顶部有摄像头)

我需要人像模式下拍摄的所有照片,下面的代码是我实现但不起作用的代码。

Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    if (cameraIntent.resolveActivity(getPackageManager()) != null) {
        cameraIntent.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION, ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
        File storageDir = new File(Environment.getExternalStorageDirectory() + PDF_FOLDER_C);
        cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile));                                                                  
        startActivityForResult(cameraIntent, idRow);
    }

【问题讨论】:

    标签: android camera photo


    【解决方案1】:

    我需要所有以人像模式拍摄的照片

    对于可能以ACTION_IMAGE_CAPTURE 启动的数百个(如果不是数千个)相机应用程序,ACTION_IMAGE_CAPTURE 没有任何东西可以强制您使用特定的方向。

    欢迎您尝试使用本机相机 API(android.hardware.Cameraandroid.hardware.camera2.*),看看是否可以获得您想要的东西。请记住,欢迎用户以他们想要的任何方向握住他们的设备。

    【讨论】:

    • 我特别感兴趣的不是用户如何拍照(风景或肖像),而是设备如何拍照。镜头预览必须始终为纵向模式,输出图像必须为纵向
    • @Max:这不会改变我的答案。 ACTION_IMAGE_CAPTURE 中没有任何内容。直接使用相机 API。并准备好在大量设备上进行测试,因为相机硬件经常表现得很奇怪。
    猜你喜欢
    • 1970-01-01
    • 2011-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多