Android相机意图拍摄3张图片时,会销毁和重新创建片段,并在onActivityResult中崩溃。
创始人
2024-10-12 13:01:20
0

要解决Android相机意图拍摄3张图片时销毁和重新创建片段,并在onActivityResult中崩溃的问题,可以按照以下步骤进行操作:

  1. 在片段中创建一个全局的变量来存储拍摄的图片数量:
private int imageCount = 0;
  1. 在启动相机意图之前,将imageCount的值传递给相机意图:
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra("imageCount", imageCount);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
  1. 在片段的onActivityResult方法中,处理拍摄图片返回的结果,并更新imageCount的值:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {
        // 处理拍摄图片的结果
        Bitmap photo = (Bitmap) data.getExtras().get("data");
        // 保存图片逻辑
        imageCount++;
        
        // 检查图片数量是否已达到3张
        if (imageCount == 3) {
            // 进行下一步操作
        } else {
            // 继续拍摄下一张图片
            Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            cameraIntent.putExtra("imageCount", imageCount);
            startActivityForResult(cameraIntent, CAMERA_REQUEST);
        }
    }
}

通过这种方式,在拍摄完每张图片后,都会检查imageCount的值,如果达到3张,则执行下一步操作;如果未达到3张,则继续启动相机意图拍摄下一张图片,并将更新后的imageCount值传递给相机意图。

这样就可以避免在拍摄完3张图片后销毁和重新创建片段,并且在onActivityResult中崩溃的问题。

相关内容

热门资讯

Android Recycle... 要在Android RecyclerView中实现滑动卡片效果,可以按照以下步骤进行操作:首先,在项...
安装apache-beam==... 出现此错误可能是因为用户的Python版本太低,而apache-beam==2.34.0需要更高的P...
Android - 无法确定任... 这个错误通常发生在Android项目中,表示编译Debug版本的Java代码时出现了依赖关系问题。下...
Android - NDK 预... 在Android NDK的构建过程中,LOCAL_SRC_FILES只能包含一个项目。如果需要在ND...
Alertmanager在pr... 首先,在Prometheus配置文件中,确保Alertmanager URL已正确配置。例如:ale...
Akka生成Actor问题 在Akka框架中,可以使用ActorSystem对象生成Actor。但是,当我们在Actor类中尝试...
Agora-RTC-React... 出现这个错误原因是因为在 React 组件中使用,import AgoraRTC from “ago...
Aksnginxdomainb... 在AKS集群中,可以使用Nginx代理服务器实现根据域名进行路由。以下是具体步骤:部署Nginx i...
Alertmanager中的基... Alertmanager中可以使用repeat_interval选项指定在一个告警重复发送前必须等待...
AddSingleton在.N... 在C#中创建Singleton对象通常是通过私有构造函数和静态属性来实现,例如:public cla...