所以我尝试使用以下代码启动Camera活动:
//In public void captureImage()
...
Intent cameraIntent = new Intent(MediaStore.ACTION_CAPTURE_IMAGE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(new File("/sdcard/image.jpg")));
startActivityForResult(cameraIntent, REQUEST_CAMERA);
然后处理结果:
//In onActivityResult()
...
case REQUEST_CAMERA:
Intent intent = new Intent (CurrentScreen.this, NextScreen.this);
intent.putExtra(data);
startActivity(intent);
CurrentScreen.this.finish();
...
我使用intent.putExtra(data)
将小位图附加到intent,并在下一个活动中将其用作缩略图,并将完整大小的文件保存为/sdcard/image.jpg
。
这是预期的行为(根据文档),为缩略图设置一个小位图,并保存一个大文件。然而,当在G1和Eris上测试时,我一直看到一些奇怪的行为。
在G1:
关于厄里斯:
/sdcard/dcim/100media
所以我的问题是这样的:有没有办法让我使用标准相机活动尝试做一致的行为?我可以编写一个自定义活动来尝试让它按照我想要的方式工作,但我更愿意避开这条路线。
答案 0 :(得分:0)
我不熟悉您的问题,因为我是Java / Android开发世界的新手。但我正在尝试类似于你正在做的事情,除了我想简单地拍照然后将它附加到电子邮件消息。
我实现了你的部分示例,并且能够验证相机是否创建了我指定的文件,如果我使用相同的文件名来覆盖下一张图片,那么它会覆盖我之前的文件。
但是我真正要说的是,或许你必须测试pat /“sdcard / ...”是否真的存在。您也可以通过将路径传递给下一个活动来简化您的流程。
祝你好运,
杰米欧文