【问题标题】:How to use camera intent to take photos multiple times如何使用相机意图多次拍照
【发布时间】:2014-02-16 02:54:16
【问题描述】:

我遇到了类似于 (How to take multiple photos before dismissing camera intent?) 的问题!

他是如何使用的:

Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);

我需要像这样使用:

    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    for(int i=0;i<2;i++){
        fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);

        intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);

    // start the image capture Intent
        startActivityForResult(intent, CAMERA_CAPTURE_IMAGE_REQUEST_CODE);
   }

因为我需要正好拍摄 2 张​​照片,所以使用默认检查或使用 MediaStore.ACTION_IMAGE_CAPTURE 的 x 预览它(以消除将其显示到图像视图的麻烦,再次返回捕捉)

然后只返回主要活动,知道我拍摄了 2 张照片/保存它的数据。

但是,当我使用该 for 循环时,它只返回最后一张拍摄的图像,并调整了 2 次(我有一个代码可以调整原始拍摄照片的 25%,所以在执行代码后,它的大小调整为 6.25返回主要活动之前的原始百分比(25% 的 1/4)。

有人可以告诉我正在发生的事情并给我一个解决方案吗?提前非常感谢! :D

我想尽可能地使用内置的相机应用程序,因为与构建自己的自定义相机的麻烦相比,它具有许多其他可用的功能。顺便说一句,我正在使用 android jellybean。 4.1.1

【问题讨论】:

    标签: android android-intent camera


    【解决方案1】:

    从您从第一个 startActivityForResult() 获得的 onActivityResult() 调用您的第二个 startActivityForResult()。请记住,startActivityForResult() 是异步的——其他活动不会立即启动。

    【讨论】:

    • 然后我将在哪里处理第二次的结果?我的应用程序很简单,有一个 mainactivity,其中有一个名为“capture image”的按钮,它有一个调用第一个 startActivityForResult() 的按钮侦听器。
    • @user3115201:“然后我将在哪里处理第二次的结果?” -- 也在startActivityForResult()。您传递给startActivityForResult() 的代码将提供给onActivityResult(),以帮助您区分一个呼叫和下一个呼叫。
    • 它是否会在处理 onActivityResult() 中的接收数据后产生调用另一个 startActivityForResult() 的无限循环,因为它调用了另一个 startActivityForResult()?或者我可以通过声明一个全局变量来阻止它,比如说 int i,它会在第一次调用后递增,然后当它已经等于 2 时,停止调用下一次调用? :D 非常感谢你。
    • @user3115201:使用if 语句检查传递给onActivityResult() 的请求代码并决定如何处理该结果。
    • 我已经处理过了。多谢。我注意到只是发生了延迟,因为它返回到相同的活动然后调用另一个活动。但是对我来说很好:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-19
    • 2021-08-09
    • 2011-05-22
    相关资源
    最近更新 更多