【问题标题】:Determine which camera used by Android camera activity确定 Android 相机活动使用哪个相机
【发布时间】:2014-03-02 14:24:23
【问题描述】:

我正在编写一个依赖于用户定期拍照的 Android 应用。据记载,如果从前置摄像头拍摄照片,Android 将返回一个翻转旋转 90 度的图像。发生这种情况时,我能够成功地重新定位图片。问题是我不知道如何告诉何时使用前置摄像头。通过了解拍照时前置摄像头的使用时间,我可以确定是否应该重新定位它。

有什么方法可以确定,最好是在 onActivityResult() 期间,使用哪个摄像头?是否有其他做法可以帮助确定和修复图片方向?

这是我的相机活动启动代码。非常直接:

    private void startCameraIntent(String name) {
    try {
        String fileName = MontageConstants.APP_DATA_FOLDER + "/" + name + "/" + new Date().getTime() + ".jpg";
        Uri fileUri = Uri.fromFile(new File(fileName));

        Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
        startActivityForResult(takePictureIntent, TAKE_PIC_ACTIVITY_REQUEST_CODE);
    } catch (Exception ex) {
        Toast.makeText(this, "Couldn't take picture", Toast.LENGTH_LONG).show();
    }
}

谢谢!

【问题讨论】:

标签: java android camera android-camera


【解决方案1】:

感谢 Navjot Singh - 我在他发布的答案中找到了我需要的信息:How to rotate android device camera preview(libgdx)。实际上,您可以使用 ExifInterface 类读取存储的 JPEG 文件中的 Exif 标签。由于我在操作之前将图片存储到文件中,因此我只需插入文件路径,获取方向,并进行相应的旋转/调整。

            ExifInterface ei = new ExifInterface(fileName);
            orientation = ei.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多