【问题标题】:Android continuous Image capture after saving first image (Intent - ACTION_IMAGE_CAPTURE)保存第一张图像后的Android连续图像捕获(意图 - ACTION_IMAGE_CAPTURE)
【发布时间】:2014-08-06 10:33:13
【问题描述】:

您好,我正在开发一个应用程序,该应用程序需要拍摄必须通过电子邮件发送的照片。当相机意图启动时,相机启动并允许我捕获图像,当我按下 SAVE 时,图像会显示在图像视图中。

现在我需要继续拍照,也就是说,按下 SAVE 后,相机应该会重新启动并准备好拍照,直到我点击返回按钮。

有人可以帮忙吗?

现在我的代码是

        Intent camIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        fileUri = getOutputMediaFileUri(FileColumns.MEDIA_TYPE_IMAGE);
        camIntent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);          
        startActivityForResult(camIntent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{   
    if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) 
    {
        if (resultCode == RESULT_OK)
        {
            ImageView img=(ImageView)findViewById(R.id.imageView1);
            img.setImageURI(fileUri);
        } 

        else if (resultCode == RESULT_CANCELED)
        {
        } 
    }
}

【问题讨论】:

  • 到底是什么问题?我会说再次使用 startActivityForResult。
  • 在上面的代码中捕获图像后,当我单击“保存”时,图像会显示在 imageview 中并且相机 INTENT 已关闭。我需要继续捕捉图像,当我按下返回时,图像应该显示在网格视图中。
  • 是的。没有比这更简单的了。如前所述:只需创建一个新意图并使用 startActivityForResult。还有什么?但是,如果您同时启动相机,则在网格视图中显示是没有意义的。那时没有人会看到gridview。检查 resultCode 以查看按下了哪个按钮。
  • 你能帮我把代码弄糊涂吗?

标签: android android-intent camera


【解决方案1】:

在活动结果上再次触发相同的意图以再次启动相机并仅在此处处理它,直到您要捕获图像为止。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{   
    if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) 
    {
        if (resultCode == RESULT_OK)
        {
            ImageView img=(ImageView)findViewById(R.id.imageView1);
            img.setImageURI(fileUri);
            Intent camIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            fileUri = getOutputMediaFileUri(FileColumns.MEDIA_TYPE_IMAGE);
            camIntent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);          
            startActivityForResult(camIntent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
        } 

        else if (resultCode == RESULT_CANCELED)
        {
        } 
    }
}

【讨论】:

  • Devendra 你知道如何将会话中捕获的图像上传到网格视图吗?
  • 如果我没记错的话,你说的是图像捕获会话。在这种情况下,当您捕获多个图像而不是使用集合作为网格视图适配器的模型来存储这些图像并在网格视图中填充这些图像时使用相同的集合。
  • 对android来说有点新,所以如果你有任何示例代码,请你帮我看看
  • Naveed 我没有任何示例代码。这将是 java 集合,例如 Arraylist 或类似的东西。创建字符串类型的集合,而不是将每次从相机捕获的每个 fileUri 添加到此集合中,而不是使用它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-01
  • 2014-04-22
  • 1970-01-01
相关资源
最近更新 更多