微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

打开自定义相机,拍照,保存图片,发送图片

如何解决打开自定义相机,拍照,保存图片,发送图片

|| 这次我有一个关于Android自定义摄像头的问题,而不是可通过Camera_intent访问的内置摄像头。我不允许使用那个。我正在尝试做的是允许用户将相机对准某物,然后在onoptionsItemmenu上选择\“发送\”。 我没有任何问题...单独实现这一点。如果我要求它通过单击按钮发送某些内容,它将发送。如果我告诉相机保存图片而不发送图片,它会保存。 当我尝试两者都做时,我遇到了一个问题。就目前而言,使用以下代码
 public boolean onoptionsItemSelected(MenuItem item) {
        Intent i;
        File file2;
        camera.takePicture(null,mPictureCallback,mPictureCallback);
        switch (item.getItemId()) {

        case R.id.save:
            return super.onoptionsItemSelected(item);

        case R.id.send:

            file2 = new File(filename);
            i = new Intent(Intent.ACTION_SEND);
            i.putExtra(Intent.EXTRA_SUBJECT,\"Sample Picture\");
            System.out.println(\"file//\" + file2);
            i.putExtra(Intent.EXTRA_STREAM,Uri.parse(\"file//\" + file2));
            i.setType(\"image/png\");
            startActivity(Intent.createChooser(i,\"Email file\"));
            finish();
            return super.onoptionsItemSelected(item);
相机“单击”或“闪烁”,就像正在拍照一样,然后立即打开邮件客户端选择。当我选择要携带的商品时,Gmail表示该位置为空。但是,如果我删除启动电子邮件选择器的部分,则图像会正确保存并在那里。 几乎就像是跳过该相机采取的步骤。 我肯定解决方案很简单,我现在脑子刚硬,可能因为树木而看不到森林。 (如果那是类推的话)。 我可以在其他线程上运行相机零件吗? 我的想法是使用布尔值检查文件的存在和大小,但是我不确定如何使程序反复检查直到返回true。     

解决方法

        我猜测可能发生的情况是您的回调发生在单独的线程上。因此,您的“打开邮件客户端”操作正在发生,而图像仍在保存。您应该尝试的是带有某种类型的标志,该标志可以告诉您是否正在发送或保存。在打开相机之前,请在onOptionsItemSelected中进行设置。然后,在mPictureCallback中执行您的ACTION_SEND意图(或保存动作)     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。